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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/Cargo.toml +34 -7
  2. package/README.md +12 -7
  3. package/dist/errors/patchConsensusErrors.js +94 -115
  4. package/dist/wasm/wasm_dpp.d.ts +2302 -4106
  5. package/dist/wasm/wasm_dpp.js +18149 -2639
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/bls/bls.js +48 -0
  8. package/lib/dpp.ts +1 -1
  9. package/lib/errors/patchConsensusErrors.ts +94 -93
  10. package/lib/test/bootstrap.js +5 -0
  11. package/lib/test/fixtures/getChainAssetLockProofFixture.js +20 -1
  12. package/lib/test/fixtures/getDataContractFixture.js +13 -9
  13. package/lib/test/fixtures/getDocumentTransitionsFixture.js +31 -1
  14. package/lib/test/fixtures/getDocumentsFixture.js +9 -5
  15. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
  16. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
  17. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  18. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  19. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  20. package/lib/test/fixtures/getInstantAssetLockProofFixture.js +32 -12
  21. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  22. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  23. package/lib/test/mocks/getBlsAdapterMock.js +1 -1
  24. package/lib/utils/creditsConverter.js +14 -0
  25. package/lib/utils/hash.js +18 -0
  26. package/lib/wasm/wasm_dpp.d.ts +2302 -4106
  27. package/package.json +4 -6
  28. package/scripts/build-wasm.sh +30 -29
  29. package/src/bls_adapter.rs +1 -1
  30. package/src/dash_platform_protocol.rs +169 -192
  31. package/src/data_contract/data_contract.rs +309 -199
  32. package/src/data_contract/data_contract_facade.rs +28 -47
  33. package/src/data_contract/errors/mod.rs +1 -0
  34. package/src/data_contract/mod.rs +2 -2
  35. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
  36. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
  37. package/src/data_contract_factory/data_contract_factory.rs +43 -83
  38. package/src/document/document_facade.rs +81 -76
  39. package/src/document/errors/document_already_exists_error.rs +6 -6
  40. package/src/document/errors/document_no_revision_error.rs +1 -0
  41. package/src/document/errors/document_not_provided_error.rs +6 -6
  42. package/src/document/errors/invalid_document_action_error.rs +11 -7
  43. package/src/document/errors/invalid_document_error.rs +5 -0
  44. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  45. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  46. package/src/document/errors/mod.rs +5 -0
  47. package/src/document/errors/revision_absent_error.rs +6 -6
  48. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  49. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  50. package/src/document/extended_document.rs +91 -76
  51. package/src/document/factory.rs +140 -119
  52. package/src/document/generate_document_id.rs +2 -2
  53. package/src/document/mod.rs +164 -150
  54. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +236 -229
  55. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  56. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  57. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +164 -152
  58. package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
  59. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
  60. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
  61. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
  62. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
  63. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
  64. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
  65. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
  66. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
  67. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
  68. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
  69. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
  70. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
  71. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
  72. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
  73. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
  74. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
  75. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
  76. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
  77. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
  78. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
  79. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
  80. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
  81. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
  82. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
  83. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
  84. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
  85. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
  86. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
  87. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
  88. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
  89. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
  90. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
  91. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
  92. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
  93. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
  94. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
  95. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
  96. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +5 -11
  97. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
  98. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
  99. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
  100. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
  101. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
  102. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
  103. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
  104. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
  105. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
  106. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
  107. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
  108. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
  109. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
  110. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
  111. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
  112. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
  113. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
  114. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
  115. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
  116. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
  117. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
  118. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
  119. package/src/errors/consensus/basic/json_schema_error.rs +33 -11
  120. package/src/errors/consensus/basic/mod.rs +2 -0
  121. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
  122. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  123. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
  124. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
  125. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
  126. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
  127. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  128. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
  129. package/src/errors/consensus/consensus_error.rs +44 -21
  130. package/src/errors/consensus/deserialize.rs +2 -1
  131. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
  132. package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
  133. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
  134. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
  135. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
  136. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
  137. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  138. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  139. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
  140. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
  141. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
  142. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  143. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
  144. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
  145. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
  146. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
  147. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
  148. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
  149. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
  150. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
  151. package/src/errors/consensus/state/document/mod.rs +2 -0
  152. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
  153. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
  154. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
  155. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
  156. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
  157. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
  158. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
  159. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
  160. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
  161. package/src/errors/consensus/value_error.rs +1 -9
  162. package/src/errors/from.rs +12 -8
  163. package/src/errors/mod.rs +7 -7
  164. package/src/errors/value_error.rs +5 -0
  165. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
  166. package/src/identity/factory_utils.rs +13 -13
  167. package/src/identity/identity.rs +275 -0
  168. package/src/identity/identity_facade.rs +94 -75
  169. package/src/identity/identity_factory.rs +74 -54
  170. package/src/identity/identity_public_key/mod.rs +87 -64
  171. package/src/identity/mod.rs +25 -247
  172. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +32 -17
  173. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  174. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  175. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +24 -15
  176. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  177. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  178. package/src/identity/state_transition/asset_lock_proof/mod.rs +124 -127
  179. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +72 -65
  180. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  181. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  182. package/src/identity/state_transition/identity_create_transition/to_object.rs +11 -12
  183. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  184. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  185. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  186. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  187. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  188. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  189. package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
  190. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +68 -62
  191. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  192. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  193. package/src/identity/state_transition/identity_topup_transition/to_object.rs +9 -12
  194. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  195. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
  196. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  197. package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
  198. package/src/identity/state_transition/mod.rs +5 -2
  199. package/src/identity/state_transition/transition_types.rs +34 -0
  200. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  201. package/src/lib.rs +9 -10
  202. package/src/metadata.rs +3 -3
  203. package/src/protocol_version.rs +7 -0
  204. package/src/state_transition/conversion.rs +11 -1
  205. package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
  206. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  207. package/src/state_transition/mod.rs +137 -139
  208. package/src/state_transition/state_transition_facade.rs +11 -11
  209. package/src/state_transition/state_transition_factory.rs +142 -153
  210. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  211. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
  212. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  213. package/src/utils.rs +7 -8
  214. package/src/validation/mod.rs +2 -2
  215. package/src/validation/validation_result.rs +17 -15
  216. package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
  217. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
  218. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
  219. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
  220. package/test/integration/document/Document.spec.js +3 -3
  221. package/test/integration/document/DocumentFacade.spec.js +33 -48
  222. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +13 -24
  223. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
  224. package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
  225. package/test/integration/identity/IdentityFacade.spec.js +33 -63
  226. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
  227. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
  228. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  229. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
  230. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  231. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
  232. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
  233. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +5 -6
  234. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
  235. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +5 -9
  236. package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
  237. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
  238. package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
  239. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  240. package/test/unit/DashPlatformProtocol.spec.js +10 -25
  241. package/test/unit/dataContract/DataContract.spec.js +119 -148
  242. package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
  243. package/test/unit/dataContract/createDataContract.spec.js +6 -6
  244. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  245. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
  246. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
  247. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +34 -27
  248. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
  249. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
  250. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
  251. package/test/unit/document/Document.spec.js +59 -70
  252. package/test/unit/document/DocumentFactory.spec.js +46 -111
  253. package/test/unit/document/errors/InvalidDocumentError.spec.js +9 -9
  254. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  255. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +160 -158
  256. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  257. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  258. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +134 -136
  259. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +4 -4
  260. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +572 -595
  261. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +6 -14
  262. package/test/unit/identity/Identity.spec.js +48 -83
  263. package/test/unit/identity/IdentityFactory.spec.js +61 -75
  264. package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
  265. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
  266. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
  267. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
  268. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
  269. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
  270. package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +9 -28
  271. package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +19 -27
  272. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  273. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  274. package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
  275. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
  276. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
  277. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
  278. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
  279. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
  280. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  281. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  282. package/test-d/index.test-d.ts +2 -2
  283. package/lib/test/fixtures/getDashPayContractFixture.js +0 -1
  284. package/lib/test/fixtures/getDashPayDocumentFixture.js +0 -1
  285. package/lib/test/fixtures/getDpnsContractFixture.js +0 -1
  286. package/lib/test/fixtures/getDpnsDocumentFixture.js +0 -1
  287. package/lib/test/fixtures/getFeatureFlagsContractFixture.js +0 -1
  288. package/lib/test/fixtures/getFeatureFlagsDocumentsFixture.js +0 -1
  289. package/lib/test/fixtures/getIdentityTopUpTransitionFixtureJs.js +0 -1
  290. package/lib/test/fixtures/getMasternodeRewardShareDocumentsFixture.js +0 -1
  291. package/lib/test/fixtures/getMasternodeRewardSharesContractFixture.js +0 -1
  292. package/lib/test/fixtures/getPreorderDocumentFixture.js +0 -1
  293. package/lib/test/fixtures/getRawTransactionFixture.js +0 -1
  294. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  295. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  296. package/src/decode_protocol_entity.rs +0 -25
  297. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
  298. package/test/integration/DashPlatformProtocol.spec.js +0 -53
  299. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  300. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +0 -195
  301. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -500
  302. package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +0 -53
  303. package/test/integration/util/generateEntropy.spec.js +0 -17
  304. package/test/integration/util/serializer.spec.js +0 -24
  305. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +0 -103
  306. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +0 -84
  307. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -47
  308. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +0 -49
  309. package/test/unit/dataTrigger/DataTrigger.spec.js +0 -132
  310. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +0 -29
  311. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +0 -107
  312. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +0 -382
  313. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +0 -99
  314. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +0 -113
  315. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +0 -51
  316. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +0 -202
  317. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
  318. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +0 -257
  319. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +0 -94
  320. package/test/unit/errors/consensus/codes.spec.js +0 -102
  321. package/test/unit/identity/creditsConverter.spec.js +0 -34
  322. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  323. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +0 -89
  324. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +0 -142
  325. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +0 -100
  326. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +0 -36
  327. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +0 -63
  328. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +0 -47
  329. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -8,26 +8,29 @@ use wasm_bindgen::prelude::*;
8
8
 
9
9
  use crate::buffer::Buffer;
10
10
 
11
+ use crate::data_contract::DataContractWasm;
11
12
  use crate::identifier::IdentifierWrapper;
12
13
  use crate::lodash::lodash_set;
13
14
  use crate::utils::WithJsError;
14
15
  use crate::utils::{with_serde_to_json_value, ToSerdeJSONExt};
15
16
  use crate::with_js_error;
16
- use crate::DataContractWasm;
17
-
17
+ use dpp::document::document_methods::DocumentMethodsV0;
18
+ use dpp::document::DocumentV0Getters;
18
19
  pub mod errors;
19
20
  pub use state_transition::*;
20
21
  pub mod document_facade;
21
22
  mod extended_document;
22
- mod factory;
23
- pub mod fetch_and_validate_data_contract;
23
+ pub mod factory;
24
+ // pub mod fetch_and_validate_data_contract;
24
25
  pub mod generate_document_id;
25
26
  pub mod state_transition;
26
- mod validator;
27
+ // mod validator;
27
28
 
28
- pub use document_batch_transition::DocumentsBatchTransitionWasm;
29
+ // pub use document_batch_transition::DocumentsBatchTransitionWasm;
29
30
 
30
- use dpp::document::{Document, EXTENDED_DOCUMENT_IDENTIFIER_FIELDS, IDENTIFIER_FIELDS};
31
+ use dpp::document::{
32
+ Document, DocumentV0Setters, EXTENDED_DOCUMENT_IDENTIFIER_FIELDS, IDENTIFIER_FIELDS,
33
+ };
31
34
 
32
35
  pub use extended_document::ExtendedDocumentWasm;
33
36
 
@@ -38,9 +41,12 @@ use dpp::platform_value::converter::serde_json::BTreeValueJsonConverter;
38
41
  use dpp::platform_value::ReplacementType;
39
42
  use dpp::platform_value::Value;
40
43
  use dpp::{platform_value, ProtocolError};
41
- pub use factory::DocumentFactoryWASM;
44
+
45
+ use dpp::data_contract::accessors::v0::DataContractV0Getters;
46
+ use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters;
47
+ use dpp::document::serialization_traits::DocumentPlatformValueMethodsV0;
48
+ use dpp::version::PlatformVersion;
42
49
  use serde_json::Value as JsonValue;
43
- pub use validator::DocumentValidatorWasm;
44
50
 
45
51
  #[derive(Serialize, Deserialize, Debug, Clone, Copy, Default)]
46
52
  #[serde(rename_all = "camelCase")]
@@ -77,67 +83,70 @@ impl DocumentWasm {
77
83
  ))
78
84
  .with_js_error()?;
79
85
 
80
- let (identifier_paths, _) = js_data_contract
86
+ let document_type = js_data_contract
81
87
  .inner()
82
- .get_identifiers_and_binary_paths(document_type_name.as_str())
88
+ .document_type_for_name(document_type_name.as_str())
83
89
  .with_js_error()?;
84
90
 
91
+ let identifier_paths = document_type.identifier_paths().iter().map(|s| s.as_str());
92
+
85
93
  // TODO: figure out a better way to replace identifiers
86
94
  raw_document
87
95
  .replace_at_paths(
88
- identifier_paths
89
- .into_iter()
90
- .chain(EXTENDED_DOCUMENT_IDENTIFIER_FIELDS),
96
+ identifier_paths.chain(EXTENDED_DOCUMENT_IDENTIFIER_FIELDS),
91
97
  ReplacementType::Identifier,
92
98
  )
93
99
  .map_err(ProtocolError::ValueError)
94
100
  .with_js_error()?;
95
101
  // The binary paths are not being converted, because they always should be a `Buffer`. `Buffer` is always an Array
96
102
 
97
- let document = Document::from_platform_value(raw_document).with_js_error()?;
103
+ let document = Document::from_platform_value(raw_document, PlatformVersion::first())
104
+ .with_js_error()?;
98
105
 
99
106
  Ok(document.into())
100
107
  }
101
108
 
102
109
  #[wasm_bindgen(js_name=getId)]
103
110
  pub fn get_id(&self) -> IdentifierWrapper {
104
- self.0.id.into()
111
+ self.0.id().into()
105
112
  }
106
113
 
107
114
  #[wasm_bindgen(js_name=setId)]
108
115
  pub fn set_id(&mut self, js_id: IdentifierWrapper) {
109
- self.0.id = js_id.into();
116
+ self.0.set_id(js_id.into());
110
117
  }
111
118
 
112
119
  #[wasm_bindgen(js_name=setOwnerId)]
113
120
  pub fn set_owner_id(&mut self, owner_id: IdentifierWrapper) {
114
- self.0.owner_id = owner_id.into();
121
+ self.0.set_owner_id(owner_id.into());
115
122
  }
116
123
 
117
124
  #[wasm_bindgen(js_name=getOwnerId)]
118
125
  pub fn get_owner_id(&self) -> IdentifierWrapper {
119
- self.0.owner_id.into()
126
+ self.0.owner_id().into()
120
127
  }
121
128
 
122
129
  #[wasm_bindgen(js_name=setRevision)]
123
130
  pub fn set_revision(&mut self, revision: Option<u32>) {
124
131
  // TODO: JS feeding Number here (u32). Is it okay to cast u32 to u64?
125
- self.0.revision = revision.map(|r| r as u64);
132
+ self.0.set_revision(revision.map(|r| r as u64));
126
133
  }
127
134
 
128
135
  #[wasm_bindgen(js_name=getRevision)]
129
136
  pub fn get_revision(&self) -> Option<u32> {
130
137
  // TODO: JS tests expecting Number (u32). Is it okay to cast u64 to u32 here?
131
- self.0.revision.map(|r| r as u32)
138
+ self.0.revision().map(|r| r as u32)
132
139
  }
133
140
 
134
141
  #[wasm_bindgen(js_name=setData)]
135
142
  pub fn set_data(&mut self, d: JsValue) -> Result<(), JsValue> {
136
143
  let properties_as_value = d.with_serde_to_platform_value()?;
137
- self.0.properties = properties_as_value
138
- .into_btree_string_map()
139
- .map_err(ProtocolError::ValueError)
140
- .with_js_error()?;
144
+ self.0.set_properties(
145
+ properties_as_value
146
+ .into_btree_string_map()
147
+ .map_err(ProtocolError::ValueError)
148
+ .with_js_error()?,
149
+ );
141
150
  Ok(())
142
151
  }
143
152
 
@@ -145,7 +154,7 @@ impl DocumentWasm {
145
154
  pub fn get_data(&mut self) -> Result<JsValue, JsValue> {
146
155
  let json_value: JsonValue = self
147
156
  .0
148
- .properties
157
+ .properties()
149
158
  .to_json_value()
150
159
  .map_err(ProtocolError::ValueError)
151
160
  .with_js_error()?;
@@ -198,87 +207,89 @@ impl DocumentWasm {
198
207
 
199
208
  #[wasm_bindgen(js_name=setCreatedAt)]
200
209
  pub fn set_created_at(&mut self, created_at: Option<js_sys::Date>) {
201
- self.0.created_at = created_at.map(|timestamp| timestamp.get_time() as TimestampMillis);
210
+ self.0
211
+ .set_created_at(created_at.map(|timestamp| timestamp.get_time() as TimestampMillis));
202
212
  }
203
213
 
204
214
  #[wasm_bindgen(js_name=setUpdatedAt)]
205
215
  pub fn set_updated_at(&mut self, updated_at: Option<js_sys::Date>) {
206
- self.0.updated_at = updated_at.map(|timestamp| timestamp.get_time() as TimestampMillis);
216
+ self.0
217
+ .set_updated_at(updated_at.map(|timestamp| timestamp.get_time() as TimestampMillis));
207
218
  }
208
219
 
209
220
  #[wasm_bindgen(js_name=getCreatedAt)]
210
221
  pub fn get_created_at(&self) -> Option<js_sys::Date> {
211
222
  self.0
212
- .created_at
223
+ .created_at()
213
224
  .map(|v| js_sys::Date::new(&JsValue::from_f64(v as f64)))
214
225
  }
215
226
 
216
227
  #[wasm_bindgen(js_name=getUpdatedAt)]
217
228
  pub fn get_updated_at(&self) -> Option<js_sys::Date> {
218
229
  self.0
219
- .updated_at
230
+ .updated_at()
220
231
  .map(|v| js_sys::Date::new(&JsValue::from_f64(v as f64)))
221
232
  }
222
233
 
223
- #[wasm_bindgen(js_name=toObject)]
224
- pub fn to_object(
225
- &self,
226
- options: &JsValue,
227
- data_contract: &DataContractWasm,
228
- document_type_name: &str,
229
- ) -> Result<JsValue, JsValue> {
230
- let options: ConversionOptions = if !options.is_undefined() && options.is_object() {
231
- let raw_options = options.with_serde_to_platform_value()?;
232
- platform_value::from_value(raw_options)
233
- .map_err(ProtocolError::ValueError)
234
- .with_js_error()?
235
- } else {
236
- Default::default()
237
- };
238
- let mut value = self.0.to_object().with_js_error()?;
239
-
240
- let (identifiers_paths, binary_paths) =
241
- Document::get_identifiers_and_binary_paths(&data_contract.0, document_type_name)
242
- .with_js_error()?;
243
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
244
- let js_value = value.serialize(&serializer)?;
245
-
246
- for path in identifiers_paths.into_iter().chain(IDENTIFIER_FIELDS) {
247
- if let Ok(bytes) = value.remove_value_at_path_as_bytes(path) {
248
- let buffer = Buffer::from_bytes_owned(bytes);
249
- if !options.skip_identifiers_conversion {
250
- lodash_set(&js_value, path, buffer.into());
251
- } else {
252
- let id = IdentifierWrapper::new(buffer.into());
253
- lodash_set(&js_value, path, id.into());
254
- }
255
- }
256
- }
257
-
258
- for path in binary_paths {
259
- if let Ok(bytes) = value.remove_value_at_path_as_bytes(path) {
260
- let buffer = Buffer::from_bytes_owned(bytes);
261
- lodash_set(&js_value, path, buffer.into());
262
- }
263
- }
264
-
265
- Ok(js_value)
266
- }
267
-
268
- #[wasm_bindgen(js_name=toJSON)]
269
- pub fn to_json(&self) -> Result<JsValue, JsValue> {
270
- let value = self.0.to_cbor().with_js_error()?;
271
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
272
-
273
- with_js_error!(value.serialize(&serializer))
274
- }
275
-
276
- #[wasm_bindgen(js_name=toBuffer)]
277
- pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
278
- let bytes = self.0.to_cbor().with_js_error()?;
279
-
280
- Ok(Buffer::from_bytes(&bytes))
281
- }
234
+ // #[wasm_bindgen(js_name=toObject)]
235
+ // pub fn to_object(
236
+ // &self,
237
+ // options: &JsValue,
238
+ // data_contract: &DataContractWasm,
239
+ // document_type_name: &str,
240
+ // ) -> Result<JsValue, JsValue> {
241
+ // let options: ConversionOptions = if !options.is_undefined() && options.is_object() {
242
+ // let raw_options = options.with_serde_to_platform_value()?;
243
+ // platform_value::from_value(raw_options)
244
+ // .map_err(ProtocolError::ValueError)
245
+ // .with_js_error()?
246
+ // } else {
247
+ // Default::default()
248
+ // };
249
+ // let mut value = self.0.to_object().with_js_error()?;
250
+ //
251
+ // let (identifiers_paths, binary_paths) =
252
+ // Document::get_identifiers_and_binary_paths(data_contract.inner(), document_type_name)
253
+ // .with_js_error()?;
254
+ // let serializer = serde_wasm_bindgen::Serializer::json_compatible();
255
+ // let js_value = value.serialize(&serializer)?;
256
+ //
257
+ // for path in identifiers_paths.into_iter().chain(IDENTIFIER_FIELDS) {
258
+ // if let Ok(bytes) = value.remove_value_at_path_as_bytes(path) {
259
+ // let buffer = Buffer::from_bytes_owned(bytes);
260
+ // if !options.skip_identifiers_conversion {
261
+ // lodash_set(&js_value, path, buffer.into());
262
+ // } else {
263
+ // let id = IdentifierWrapper::new(buffer.into());
264
+ // lodash_set(&js_value, path, id.into());
265
+ // }
266
+ // }
267
+ // }
268
+ //
269
+ // for path in binary_paths {
270
+ // if let Ok(bytes) = value.remove_value_at_path_as_bytes(path) {
271
+ // let buffer = Buffer::from_bytes_owned(bytes);
272
+ // lodash_set(&js_value, path, buffer.into());
273
+ // }
274
+ // }
275
+ //
276
+ // Ok(js_value)
277
+ // }
278
+ //
279
+ // #[wasm_bindgen(js_name=toJSON)]
280
+ // pub fn to_json(&self) -> Result<JsValue, JsValue> {
281
+ // let value = self.0.to_cbor().with_js_error()?;
282
+ // let serializer = serde_wasm_bindgen::Serializer::json_compatible();
283
+ //
284
+ // with_js_error!(value.serialize(&serializer))
285
+ // }
286
+ //
287
+ // #[wasm_bindgen(js_name=toBuffer)]
288
+ // pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
289
+ // let bytes = self.0.to_cbor().with_js_error()?;
290
+ //
291
+ // Ok(Buffer::from_bytes(&bytes))
292
+ // }
282
293
 
283
294
  #[wasm_bindgen(js_name=hash)]
284
295
  pub fn hash(
@@ -287,12 +298,16 @@ impl DocumentWasm {
287
298
  document_type_name: String,
288
299
  ) -> Result<Buffer, JsValue> {
289
300
  let document_type = data_contract
290
- .0
301
+ .inner()
291
302
  .document_type_for_name(document_type_name.as_str())
292
303
  .with_js_error()?;
293
304
  let bytes = self
294
305
  .0
295
- .hash(&data_contract.0, document_type)
306
+ .hash(
307
+ data_contract.inner(),
308
+ document_type,
309
+ PlatformVersion::first(),
310
+ )
296
311
  .with_js_error()?;
297
312
  Ok(Buffer::from_bytes(&bytes))
298
313
  }
@@ -309,72 +324,71 @@ impl DocumentWasm {
309
324
  path: &String,
310
325
  data_contract: &DataContractWasm,
311
326
  document_type_name: String,
312
- ) -> BinaryType {
313
- let maybe_binary_properties = data_contract
314
- .0
315
- .get_binary_properties(document_type_name.as_str());
327
+ ) -> Result<BinaryType, JsValue> {
328
+ let document_type = data_contract
329
+ .inner()
330
+ .document_type_for_name(document_type_name.as_str())
331
+ .with_js_error()?;
316
332
 
317
- if let Ok(binary_properties) = maybe_binary_properties {
318
- if let Some(data) = binary_properties.get(path) {
319
- if data.is_type_of_identifier() {
320
- return BinaryType::Identifier;
321
- }
322
- return BinaryType::Buffer;
323
- }
333
+ if document_type.binary_paths().contains(path) {
334
+ Ok(BinaryType::Buffer)
335
+ } else if document_type.identifier_paths().contains(path) {
336
+ Ok(BinaryType::Identifier)
337
+ } else {
338
+ Ok(BinaryType::None)
324
339
  }
325
- BinaryType::None
326
340
  }
327
341
  }
328
342
 
329
343
  /// document's dynamic data, regardless they are identifiers or binary, they should
330
344
  /// be stored as arrays of int
331
- pub(crate) fn document_data_to_bytes(
332
- document: &mut Document,
333
- contract: &DataContract,
334
- document_type: &str,
335
- ) -> Result<(), JsValue> {
336
- let (identifier_paths, binary_paths): (Vec<_>, Vec<_>) = contract
337
- .get_identifiers_and_binary_paths_owned(document_type)
338
- .with_js_error()?;
339
- document
340
- .properties
341
- .replace_at_paths(identifier_paths, ReplacementType::Identifier)
342
- .map_err(ProtocolError::ValueError)
343
- .with_js_error()?;
344
- document
345
- .properties
346
- .replace_at_paths(binary_paths, ReplacementType::BinaryBytes)
347
- .map_err(ProtocolError::ValueError)
348
- .with_js_error()?;
349
- Ok(())
350
- }
351
-
352
- pub(crate) fn raw_document_from_js_value(
353
- js_raw_document: &JsValue,
354
- data_contract: &DataContract,
355
- ) -> Result<Value, JsValue> {
356
- let mut raw_document = js_raw_document.with_serde_to_platform_value()?;
357
-
358
- let document_type_name = raw_document
359
- .get_str(property_names::DOCUMENT_TYPE)
360
- .map_err(ProtocolError::ValueError)
361
- .with_js_error()?;
362
-
363
- let (identifier_paths, binary_paths) = data_contract
364
- .get_identifiers_and_binary_paths(document_type_name)
365
- .with_js_error()?;
366
-
367
- raw_document
368
- .replace_at_paths(identifier_paths, ReplacementType::Identifier)
369
- .map_err(ProtocolError::ValueError)
370
- .with_js_error()?;
371
- raw_document
372
- .replace_at_paths(binary_paths, ReplacementType::BinaryBytes)
373
- .map_err(ProtocolError::ValueError)
374
- .with_js_error()?;
375
-
376
- Ok(raw_document)
377
- }
345
+ // pub(crate) fn document_data_to_bytes(
346
+ // document: &mut Document,
347
+ // contract: &DataContract,
348
+ // document_type: &str,
349
+ // ) -> Result<(), JsValue> {
350
+ // let (identifier_paths, binary_paths): (Vec<_>, Vec<_>) = contract
351
+ // .get_identifiers_and_binary_paths_owned(document_type)
352
+ // .with_js_error()?;
353
+ // document
354
+ // .properties()
355
+ // .replace_at_paths(identifier_paths, ReplacementType::Identifier)
356
+ // .map_err(ProtocolError::ValueError)
357
+ // .with_js_error()?;
358
+ // document
359
+ // .properties()
360
+ // .replace_at_paths(binary_paths, ReplacementType::BinaryBytes)
361
+ // .map_err(ProtocolError::ValueError)
362
+ // .with_js_error()?;
363
+ // Ok(())
364
+ // }
365
+
366
+ // pub(crate) fn raw_document_from_js_value(
367
+ // js_raw_document: &JsValue,
368
+ // data_contract: &DataContract,
369
+ // ) -> Result<Value, JsValue> {
370
+ // let mut raw_document = js_raw_document.with_serde_to_platform_value()?;
371
+ //
372
+ // let document_type_name = raw_document
373
+ // .get_str(property_names::DOCUMENT_TYPE_NAME)
374
+ // .map_err(ProtocolError::ValueError)
375
+ // .with_js_error()?;
376
+ //
377
+ // let (identifier_paths, binary_paths) = data_contract
378
+ // .get_identifiers_and_binary_paths(document_type_name)
379
+ // .with_js_error()?;
380
+ //
381
+ // raw_document
382
+ // .replace_at_paths(identifier_paths, ReplacementType::Identifier)
383
+ // .map_err(ProtocolError::ValueError)
384
+ // .with_js_error()?;
385
+ // raw_document
386
+ // .replace_at_paths(binary_paths, ReplacementType::BinaryBytes)
387
+ // .map_err(ProtocolError::ValueError)
388
+ // .with_js_error()?;
389
+ //
390
+ // Ok(raw_document)
391
+ // }
378
392
 
379
393
  impl From<Document> for DocumentWasm {
380
394
  fn from(d: Document) -> Self {