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

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