@dashevo/wasm-dpp 0.25.0-dev.16 → 0.25.0-dev.18

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 (265) hide show
  1. package/Cargo.toml +22 -2
  2. package/dist/errors/patchConsensusErrors.js +94 -115
  3. package/dist/wasm/wasm_dpp.d.ts +2120 -4338
  4. package/dist/wasm/wasm_dpp.js +17747 -2768
  5. package/dist/wasm/wasm_dpp_bg.js +1 -1
  6. package/lib/dpp.ts +1 -1
  7. package/lib/errors/patchConsensusErrors.ts +94 -93
  8. package/lib/test/bootstrap.js +5 -0
  9. package/lib/test/fixtures/getDataContractFixture.js +2 -4
  10. package/lib/test/fixtures/getDocumentsFixture.js +4 -4
  11. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +13 -19
  12. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +7 -12
  13. package/lib/test/fixtures/getIdentityFixture.js +21 -32
  14. package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
  15. package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
  16. package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
  17. package/lib/wasm/wasm_dpp.d.ts +2120 -4338
  18. package/package.json +4 -4
  19. package/src/dash_platform_protocol.rs +172 -195
  20. package/src/data_contract/data_contract.rs +255 -203
  21. package/src/data_contract/data_contract_facade.rs +24 -46
  22. package/src/data_contract/errors/mod.rs +1 -0
  23. package/src/data_contract/mod.rs +2 -2
  24. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +82 -87
  25. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +74 -80
  26. package/src/data_contract_factory/data_contract_factory.rs +29 -82
  27. package/src/document/document_facade.rs +74 -81
  28. package/src/document/errors/document_already_exists_error.rs +6 -6
  29. package/src/document/errors/document_no_revision_error.rs +1 -0
  30. package/src/document/errors/document_not_provided_error.rs +6 -6
  31. package/src/document/errors/invalid_document_action_error.rs +11 -7
  32. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  33. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  34. package/src/document/errors/mod.rs +5 -0
  35. package/src/document/errors/revision_absent_error.rs +6 -6
  36. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  37. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  38. package/src/document/extended_document.rs +76 -76
  39. package/src/document/factory.rs +127 -123
  40. package/src/document/generate_document_id.rs +2 -2
  41. package/src/document/mod.rs +162 -148
  42. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  43. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  44. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  45. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  46. package/src/document/state_transition/document_batch_transition/mod.rs +230 -217
  47. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -10
  48. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -10
  49. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -11
  50. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -10
  51. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -10
  52. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -10
  53. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -10
  54. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -10
  55. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -10
  56. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -10
  57. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -10
  58. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -10
  59. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -10
  60. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -10
  61. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -10
  62. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -10
  63. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -10
  64. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -10
  65. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -8
  66. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -10
  67. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -10
  68. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -10
  69. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -10
  70. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -10
  71. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -10
  72. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -10
  73. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -10
  74. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -10
  75. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -10
  76. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -10
  77. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -10
  78. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -10
  79. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -10
  80. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -10
  81. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -10
  82. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -10
  83. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -10
  84. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -10
  85. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -10
  86. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -10
  87. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -10
  88. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -10
  89. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -10
  90. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -10
  91. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -10
  92. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -10
  93. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -10
  94. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -10
  95. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -10
  96. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -10
  97. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -10
  98. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -10
  99. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -10
  100. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -10
  101. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -10
  102. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -10
  103. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +1 -10
  104. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -10
  105. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -10
  106. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  107. package/src/errors/consensus/basic/mod.rs +2 -0
  108. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -10
  109. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  110. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -10
  111. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -10
  112. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -10
  113. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -10
  114. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  115. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -10
  116. package/src/errors/consensus/consensus_error.rs +30 -21
  117. package/src/errors/consensus/deserialize.rs +2 -2
  118. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -3
  119. package/src/errors/consensus/signature/basic_bls_error.rs +1 -10
  120. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -10
  121. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -3
  122. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -10
  123. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -3
  124. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +1 -12
  125. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +1 -10
  126. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -2
  127. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -2
  128. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -2
  129. package/src/errors/consensus/state/data_contract/mod.rs +3 -1
  130. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -10
  131. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -10
  132. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -10
  133. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -10
  134. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +1 -10
  135. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -10
  136. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -10
  137. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -13
  138. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -10
  139. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -10
  140. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -10
  141. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -10
  142. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -10
  143. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -10
  144. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -10
  145. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -10
  146. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -10
  147. package/src/errors/consensus/value_error.rs +1 -10
  148. package/src/errors/from.rs +12 -8
  149. package/src/errors/mod.rs +7 -7
  150. package/src/identity/factory_utils.rs +10 -10
  151. package/src/identity/identity.rs +275 -0
  152. package/src/identity/identity_facade.rs +69 -70
  153. package/src/identity/identity_factory.rs +57 -55
  154. package/src/identity/identity_public_key/mod.rs +86 -62
  155. package/src/identity/mod.rs +25 -256
  156. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  157. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  158. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  159. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  160. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  161. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +66 -52
  162. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  163. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  164. package/src/identity/state_transition/identity_create_transition/to_object.rs +9 -11
  165. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +3 -3
  166. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +10 -13
  167. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +72 -39
  168. package/src/identity/state_transition/identity_public_key_transitions.rs +81 -66
  169. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +64 -51
  170. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  171. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  172. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  173. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +95 -92
  174. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  175. package/src/identity/state_transition/identity_update_transition/to_object.rs +14 -18
  176. package/src/identity/state_transition/mod.rs +2 -2
  177. package/src/lib.rs +9 -9
  178. package/src/metadata.rs +3 -3
  179. package/src/protocol_version.rs +2 -2
  180. package/src/state_transition/errors/invalid_state_transition_error.rs +9 -9
  181. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  182. package/src/state_transition/mod.rs +137 -139
  183. package/src/state_transition/state_transition_facade.rs +1 -2
  184. package/src/state_transition/state_transition_factory.rs +139 -159
  185. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  186. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +3 -4
  187. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  188. package/src/utils.rs +4 -2
  189. package/src/validation/validation_result.rs +1 -1
  190. package/test/integration/dataContract/DataContractFacade.spec.js +11 -15
  191. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +1 -1
  192. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +1 -1
  193. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +1 -1
  194. package/test/integration/document/Document.spec.js +3 -3
  195. package/test/integration/document/DocumentFacade.spec.js +34 -33
  196. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +1 -1
  197. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +1 -1
  198. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
  199. package/test/integration/document/validation/validateDocumentFactory.spec.js +1 -1
  200. package/test/integration/identity/IdentityFacade.spec.js +29 -58
  201. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +2 -2
  202. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +1 -1
  203. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  204. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +2 -2
  205. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  206. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +1 -1
  207. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +2 -2
  208. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +1 -1
  209. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +4 -3
  210. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +1 -1
  211. package/test/integration/identity/validation/validateIdentityFactory.spec.js +2 -2
  212. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +1 -1
  213. package/test/integration/stateTransition/StateTransitionFacade.spec.js +39 -48
  214. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  215. package/test/unit/DashPlatformProtocol.spec.js +4 -18
  216. package/test/unit/dataContract/DataContract.spec.js +88 -123
  217. package/test/unit/dataContract/DataContractFactory.spec.js +1 -1
  218. package/test/unit/dataContract/createDataContract.spec.js +1 -1
  219. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  220. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +14 -14
  221. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
  222. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +1 -1
  223. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +7 -8
  224. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
  225. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +1 -1
  226. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +1 -1
  227. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +1 -1
  228. package/test/unit/document/Document.spec.js +18 -10
  229. package/test/unit/document/DocumentFactory.spec.js +10 -23
  230. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  231. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +4 -4
  232. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +1 -1
  233. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  234. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  235. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  236. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  237. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  238. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +1 -1
  239. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  240. package/test/unit/identity/Identity.spec.js +36 -74
  241. package/test/unit/identity/IdentityFactory.spec.js +55 -68
  242. package/test/unit/identity/IdentityPublicKey.spec.js +33 -47
  243. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +23 -55
  244. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +2 -2
  245. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +2 -2
  246. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +7 -28
  247. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +4 -4
  248. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
  249. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +19 -36
  250. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
  251. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  252. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +14 -23
  253. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  254. package/test/unit/stateTransition/StateTransitionFactory.spec.js +13 -18
  255. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +1 -1
  256. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +1 -1
  257. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +1 -1
  258. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +1 -1
  259. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +2 -2
  260. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  261. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  262. package/test-d/index.test-d.ts +2 -2
  263. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  264. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  265. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
@@ -4,28 +4,21 @@ mod instant;
4
4
  pub use chain::*;
5
5
  pub use instant::*;
6
6
  use std::convert::TryInto;
7
- use std::sync::Arc;
8
7
  use wasm_bindgen::JsCast;
9
8
  use wasm_bindgen::__rt::Ref;
10
9
 
11
- use crate::errors::{from_dpp_err, RustConversionError};
12
- use dpp::dashcore::consensus;
13
- use dpp::dashcore::hashes::hex::FromHex;
10
+ use crate::errors::RustConversionError;
11
+
14
12
  use dpp::identity::errors::UnknownAssetLockProofTypeError;
15
13
  use wasm_bindgen::prelude::*;
16
14
 
17
- use crate::buffer::Buffer;
18
- use crate::errors::dpp_error::from_dpp_error_ref;
19
15
  use crate::identifier::IdentifierWrapper;
20
16
  use crate::identity::errors::UnknownAssetLockProofTypeErrorWasm;
21
- use crate::state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper};
17
+
22
18
  use crate::utils::generic_of_js_val;
23
- use crate::validation::ValidationResultWasm;
24
- use crate::{Deserialize, StateTransitionExecutionContextWasm};
25
- use dpp::identity::state_transition::asset_lock_proof::{
26
- AssetLockProof, AssetLockProofType, AssetLockPublicKeyHashFetcher,
27
- AssetLockTransactionOutputFetcher, AssetLockTransactionValidator,
28
- };
19
+
20
+ use dpp::identity::state_transition::asset_lock_proof::{AssetLockProof, AssetLockProofType};
21
+ use serde::Deserialize;
29
22
 
30
23
  #[derive(Deserialize, Clone)]
31
24
  #[wasm_bindgen(js_name=AssetLockProof)]
@@ -164,106 +157,109 @@ pub fn create_asset_lock_proof_from_wasm_instance(
164
157
  }
165
158
  }
166
159
 
167
- #[wasm_bindgen(js_name=validateAssetLockTransaction)]
168
- pub async fn validate_asset_lock_transaction(
169
- state_repository: ExternalStateRepositoryLike,
170
- raw_transaction: String,
171
- output_index: usize,
172
- execution_context: &StateTransitionExecutionContextWasm,
173
- ) -> Result<ValidationResultWasm, JsValue> {
174
- let tx_bytes = Vec::from_hex(&raw_transaction)
175
- .map_err(|_| RustConversionError::Error(String::from("invalid transaction hex")))?;
176
-
177
- let state_repository_wrapper =
178
- Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
179
-
180
- let validator = AssetLockTransactionValidator::new(state_repository_wrapper);
181
-
182
- let result = validator
183
- .validate(tx_bytes.as_slice(), output_index, execution_context.into())
184
- .await
185
- .map_err(|e| from_dpp_err(e.into()))?;
186
-
187
- let validation_result = result.map(|item| {
188
- let object = js_sys::Object::new();
189
-
190
- js_sys::Reflect::set(
191
- &object,
192
- &"publicKeyHash".to_owned().into(),
193
- &Buffer::from_bytes(&item.public_key_hash),
194
- )
195
- .unwrap();
196
-
197
- let deserialized_tx = consensus::serialize(&item.transaction);
198
-
199
- js_sys::Reflect::set(
200
- &object,
201
- &"transaction".to_owned().into(),
202
- &Buffer::from_bytes(&deserialized_tx),
203
- )
204
- .unwrap();
205
-
206
- object
207
- });
208
-
209
- Ok(validation_result.into())
210
- }
211
-
212
- #[wasm_bindgen(js_name=fetchAssetLockTransactionOutput)]
213
- pub async fn fetch_asset_lock_transaction_output(
214
- state_repository: ExternalStateRepositoryLike,
215
- raw_asset_lock_proof: JsValue,
216
- execution_context: &StateTransitionExecutionContextWasm,
217
- ) -> Result<JsValue, JsValue> {
218
- let asset_lock_proof = create_asset_lock_proof_from_wasm_instance(&raw_asset_lock_proof)?;
219
-
220
- let state_repository_wrapper =
221
- Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
222
-
223
- let fetcher = AssetLockTransactionOutputFetcher::new(state_repository_wrapper);
224
-
225
- let fetch_result = fetcher
226
- .fetch(&asset_lock_proof, execution_context.into())
227
- .await
228
- .map_err(|e| from_dpp_error_ref(&e))?;
229
-
230
- let tx_out = js_sys::Object::new();
231
-
232
- js_sys::Reflect::set(
233
- &tx_out,
234
- &"satoshis".to_owned().into(),
235
- &(fetch_result.value as u32).into(),
236
- )
237
- .unwrap();
238
-
239
- let script_hex = format!("{:x}", fetch_result.script_pubkey);
240
-
241
- js_sys::Reflect::set(&tx_out, &"script".to_owned().into(), &script_hex.into()).unwrap();
242
-
243
- Ok(tx_out.into())
244
- }
245
-
246
- #[wasm_bindgen(js_name=fetchAssetLockPublicKeyHash)]
247
- pub async fn fetch_asset_lock_public_key_hash(
248
- state_repository: ExternalStateRepositoryLike,
249
- raw_asset_lock_proof: JsValue,
250
- execution_context: &StateTransitionExecutionContextWasm,
251
- ) -> Result<JsValue, JsValue> {
252
- let asset_lock_proof = create_asset_lock_proof_from_wasm_instance(&raw_asset_lock_proof)?;
253
-
254
- let state_repository_wrapper =
255
- Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
256
-
257
- let tx_output_fetcher =
258
- AssetLockTransactionOutputFetcher::new(state_repository_wrapper.clone());
259
-
260
- let public_key_hash_fetcher =
261
- AssetLockPublicKeyHashFetcher::new(state_repository_wrapper, Arc::new(tx_output_fetcher));
262
-
263
- let fetch_result = public_key_hash_fetcher
264
- .fetch_public_key_hash(asset_lock_proof, execution_context.into())
265
- .await
266
- .map_err(|e| from_dpp_error_ref(&e))?;
267
-
268
- Ok(Buffer::from_bytes(&fetch_result).into())
269
- }
160
+ // TODO(versioning): restore?
161
+ // #[wasm_bindgen(js_name=validateAssetLockTransaction)]
162
+ // pub async fn validate_asset_lock_transaction(
163
+ // state_repository: ExternalStateRepositoryLike,
164
+ // raw_transaction: String,
165
+ // output_index: usize,
166
+ // execution_context: &StateTransitionExecutionContextWasm,
167
+ // ) -> Result<ValidationResultWasm, JsValue> {
168
+ // let tx_bytes = Vec::from_hex(&raw_transaction)
169
+ // .map_err(|_| RustConversionError::Error(String::from("invalid transaction hex")))?;
170
+ //
171
+ // let state_repository_wrapper =
172
+ // Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
173
+ //
174
+ // let validator = AssetLockTransactionValidator::new(state_repository_wrapper);
175
+ //
176
+ // let result = validator
177
+ // .validate(tx_bytes.as_slice(), output_index, execution_context.into())
178
+ // .await
179
+ // .map_err(|e| from_dpp_err(e.into()))?;
180
+ //
181
+ // let validation_result = result.map(|item| {
182
+ // let object = js_sys::Object::new();
183
+ //
184
+ // js_sys::Reflect::set(
185
+ // &object,
186
+ // &"publicKeyHash".to_owned().into(),
187
+ // &Buffer::from_bytes(&item.public_key_hash),
188
+ // )
189
+ // .unwrap();
190
+ //
191
+ // let deserialized_tx = consensus::serialize(&item.transaction);
192
+ //
193
+ // js_sys::Reflect::set(
194
+ // &object,
195
+ // &"transaction".to_owned().into(),
196
+ // &Buffer::from_bytes(&deserialized_tx),
197
+ // )
198
+ // .unwrap();
199
+ //
200
+ // object
201
+ // });
202
+ //
203
+ // Ok(validation_result.into())
204
+ // }
205
+
206
+ // TODO(versioning): restore?
207
+ // #[wasm_bindgen(js_name=fetchAssetLockTransactionOutput)]
208
+ // pub async fn fetch_asset_lock_transaction_output(
209
+ // state_repository: ExternalStateRepositoryLike,
210
+ // raw_asset_lock_proof: JsValue,
211
+ // execution_context: &StateTransitionExecutionContextWasm,
212
+ // ) -> Result<JsValue, JsValue> {
213
+ // let asset_lock_proof = create_asset_lock_proof_from_wasm_instance(&raw_asset_lock_proof)?;
214
+ //
215
+ // let state_repository_wrapper =
216
+ // Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
217
+ //
218
+ // let fetcher = AssetLockTransactionOutputFetcher::new(state_repository_wrapper);
219
+ //
220
+ // let fetch_result = fetcher
221
+ // .fetch(&asset_lock_proof, execution_context.into())
222
+ // .await
223
+ // .map_err(|e| from_dpp_error_ref(&e))?;
224
+ //
225
+ // let tx_out = js_sys::Object::new();
226
+ //
227
+ // js_sys::Reflect::set(
228
+ // &tx_out,
229
+ // &"satoshis".to_owned().into(),
230
+ // &(fetch_result.value as u32).into(),
231
+ // )
232
+ // .unwrap();
233
+ //
234
+ // let script_hex = format!("{:x}", fetch_result.script_pubkey);
235
+ //
236
+ // js_sys::Reflect::set(&tx_out, &"script".to_owned().into(), &script_hex.into()).unwrap();
237
+ //
238
+ // Ok(tx_out.into())
239
+ // }
240
+
241
+ // TODO(versioning): restore?
242
+ // #[wasm_bindgen(js_name=fetchAssetLockPublicKeyHash)]
243
+ // pub async fn fetch_asset_lock_public_key_hash(
244
+ // state_repository: ExternalStateRepositoryLike,
245
+ // raw_asset_lock_proof: JsValue,
246
+ // execution_context: &StateTransitionExecutionContextWasm,
247
+ // ) -> Result<JsValue, JsValue> {
248
+ // let asset_lock_proof = create_asset_lock_proof_from_wasm_instance(&raw_asset_lock_proof)?;
249
+ //
250
+ // let state_repository_wrapper =
251
+ // Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
252
+ //
253
+ // let tx_output_fetcher =
254
+ // AssetLockTransactionOutputFetcher::new(state_repository_wrapper.clone());
255
+ //
256
+ // let public_key_hash_fetcher =
257
+ // AssetLockPublicKeyHashFetcher::new(state_repository_wrapper, Arc::new(tx_output_fetcher));
258
+ //
259
+ // let fetch_result = public_key_hash_fetcher
260
+ // .fetch_public_key_hash(asset_lock_proof, execution_context.into())
261
+ // .await
262
+ // .map_err(|e| from_dpp_error_ref(&e))?;
263
+ //
264
+ // Ok(Buffer::from_bytes(&fetch_result).into())
265
+ // }
@@ -1,35 +1,41 @@
1
- use std::convert::TryInto;
1
+ use dpp::platform_value::Value;
2
+ use serde_json::Value as JsonValue;
2
3
  use std::default::Default;
3
4
 
4
5
  use wasm_bindgen::__rt::Ref;
5
6
  use wasm_bindgen::prelude::*;
6
7
 
8
+ use crate::bls_adapter::BlsAdapter;
9
+ use crate::errors::from_dpp_err;
10
+ use dpp::identity::KeyType;
11
+ use dpp::platform_value::BinaryData;
12
+ use dpp::version::PlatformVersion;
13
+
7
14
  use crate::identifier::IdentifierWrapper;
8
15
 
16
+ use crate::identity::state_transition::asset_lock_proof::create_asset_lock_proof_from_wasm_instance;
17
+
9
18
  use crate::{
10
19
  buffer::Buffer,
11
- create_asset_lock_proof_from_wasm_instance,
12
20
  errors::RustConversionError,
13
21
  identity::state_transition::asset_lock_proof::{
14
22
  ChainAssetLockProofWasm, InstantAssetLockProofWasm,
15
23
  },
16
24
  identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitnessWasm,
17
- with_js_error,
25
+ utils, with_js_error,
18
26
  };
19
27
 
20
- use crate::bls_adapter::{BlsAdapter, JsBlsAdapter};
21
- use dpp::state_transition::StateTransition;
22
-
23
- use crate::utils::{generic_of_js_val, ToSerdeJSONExt, WithJsError};
24
- use dpp::identity::KeyType;
28
+ use crate::bls_adapter::JsBlsAdapter;
29
+ use crate::utils::{generic_of_js_val, WithJsError};
30
+ use dpp::platform_value::string_encoding;
25
31
  use dpp::platform_value::string_encoding::Encoding;
26
- use dpp::platform_value::{string_encoding, BinaryData};
27
- use dpp::serialization_traits::PlatformSerializable;
32
+ use dpp::serialization::{PlatformSerializable, ValueConvertible};
33
+ use dpp::state_transition::identity_create_transition::accessors::IdentityCreateTransitionAccessorsV0;
34
+ use dpp::state_transition::StateTransition;
28
35
  use dpp::{
29
- identity::state_transition::{
30
- asset_lock_proof::AssetLockProof, identity_create_transition::IdentityCreateTransition,
31
- identity_public_key_transitions::IdentityPublicKeyInCreation,
32
- },
36
+ identity::state_transition::asset_lock_proof::AssetLockProof,
37
+ state_transition::identity::identity_create_transition::IdentityCreateTransition,
38
+ state_transition::identity::public_key_in_creation::IdentityPublicKeyInCreation,
33
39
  state_transition::StateTransitionLike,
34
40
  };
35
41
 
@@ -52,14 +58,13 @@ impl From<IdentityCreateTransitionWasm> for IdentityCreateTransition {
52
58
  #[wasm_bindgen(js_class = IdentityCreateTransition)]
53
59
  impl IdentityCreateTransitionWasm {
54
60
  #[wasm_bindgen(constructor)]
55
- pub fn new(raw_parameters: JsValue) -> Result<IdentityCreateTransitionWasm, JsValue> {
56
- let mut raw_state_transition = raw_parameters.with_serde_to_platform_value()?;
57
- IdentityCreateTransition::clean_value(&mut raw_state_transition).with_js_error()?;
58
- let identity_create_transition =
59
- IdentityCreateTransition::from_raw_object(raw_state_transition)
60
- .map_err(|e| RustConversionError::Error(e.to_string()).to_js_value())?;
61
-
62
- Ok(identity_create_transition.into())
61
+ pub fn new(platform_version: u32) -> Result<IdentityCreateTransitionWasm, JsValue> {
62
+ let platform_version =
63
+ &PlatformVersion::get(platform_version).map_err(|e| JsValue::from(e.to_string()))?;
64
+
65
+ IdentityCreateTransition::default_versioned(&platform_version)
66
+ .map(Into::into)
67
+ .map_err(from_dpp_err)
63
68
  }
64
69
 
65
70
  #[wasm_bindgen(js_name=setAssetLockProof)]
@@ -80,7 +85,7 @@ impl IdentityCreateTransitionWasm {
80
85
 
81
86
  #[wasm_bindgen(js_name=getAssetLockProof)]
82
87
  pub fn get_asset_lock_proof(&self) -> JsValue {
83
- let asset_lock_proof = self.0.get_asset_lock_proof().to_owned();
88
+ let asset_lock_proof = self.0.asset_lock_proof().to_owned();
84
89
 
85
90
  match asset_lock_proof {
86
91
  AssetLockProof::Chain(chain_asset_lock_proof) => {
@@ -133,7 +138,7 @@ impl IdentityCreateTransitionWasm {
133
138
  #[wasm_bindgen(js_name=getPublicKeys)]
134
139
  pub fn get_public_keys(&self) -> Vec<JsValue> {
135
140
  self.0
136
- .get_public_keys()
141
+ .public_keys()
137
142
  .iter()
138
143
  .map(IdentityPublicKeyInCreation::to_owned)
139
144
  .map(IdentityPublicKeyWithWitnessWasm::from)
@@ -148,7 +153,7 @@ impl IdentityCreateTransitionWasm {
148
153
 
149
154
  #[wasm_bindgen(js_name=getType)]
150
155
  pub fn get_type(&self) -> u8 {
151
- self.0.get_type() as u8
156
+ self.0.state_transition_type() as u8
152
157
  }
153
158
 
154
159
  #[wasm_bindgen(getter, js_name=identityId)]
@@ -158,12 +163,12 @@ impl IdentityCreateTransitionWasm {
158
163
 
159
164
  #[wasm_bindgen(js_name=getIdentityId)]
160
165
  pub fn get_identity_id(&self) -> IdentifierWrapper {
161
- (*self.0.get_identity_id()).into()
166
+ self.0.identity_id().into()
162
167
  }
163
168
 
164
169
  #[wasm_bindgen(js_name=getOwnerId)]
165
170
  pub fn get_owner_id(&self) -> IdentifierWrapper {
166
- (*self.0.get_owner_id()).into()
171
+ (IdentityCreateTransitionAccessorsV0::owner_id(&self.0)).into()
167
172
  }
168
173
 
169
174
  #[wasm_bindgen(js_name=toObject)]
@@ -174,22 +179,22 @@ impl IdentityCreateTransitionWasm {
174
179
  Default::default()
175
180
  };
176
181
 
177
- let _skip_signature = opts.skip_signature;
178
- let object = super::to_object::to_object_struct(&self.0, opts);
182
+ let object = super::to_object::to_object_struct(&self.0, &opts);
183
+
179
184
  let js_object = js_sys::Object::new();
180
185
 
186
+ let version = match self.0 {
187
+ IdentityCreateTransition::V0(_) => "0",
188
+ };
189
+
190
+ js_sys::Reflect::set(&js_object, &"$version".to_owned().into(), &version.into())?;
191
+
181
192
  js_sys::Reflect::set(
182
193
  &js_object,
183
194
  &"type".to_owned().into(),
184
195
  &object.transition_type.into(),
185
196
  )?;
186
197
 
187
- js_sys::Reflect::set(
188
- &js_object,
189
- &"protocolVersion".to_owned().into(),
190
- &object.protocol_version.into(),
191
- )?;
192
-
193
198
  if let Some(signature) = object.signature {
194
199
  let signature_value: JsValue = if signature.is_empty() {
195
200
  JsValue::undefined()
@@ -219,7 +224,7 @@ impl IdentityCreateTransitionWasm {
219
224
  .public_keys
220
225
  .into_iter()
221
226
  .map(IdentityPublicKeyWithWitnessWasm::from)
222
- .map(|key| key.to_object(options.clone()))
227
+ .map(|key| key.to_object(opts.skip_signature.unwrap_or(false)))
223
228
  .collect::<Result<js_sys::Array, _>>()?;
224
229
 
225
230
  js_sys::Reflect::set(&js_object, &"publicKeys".to_owned().into(), &keys_objects)?;
@@ -229,29 +234,30 @@ impl IdentityCreateTransitionWasm {
229
234
 
230
235
  #[wasm_bindgen(js_name=toBuffer)]
231
236
  pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
232
- let bytes =
233
- PlatformSerializable::serialize(&StateTransition::IdentityCreate(self.0.clone()))
234
- .with_js_error()?;
237
+ let bytes = PlatformSerializable::serialize_to_bytes(&StateTransition::IdentityCreate(
238
+ self.0.clone(),
239
+ ))
240
+ .with_js_error()?;
235
241
  Ok(Buffer::from_bytes(&bytes))
236
242
  }
237
243
 
238
244
  #[wasm_bindgen(js_name=toJSON)]
239
245
  pub fn to_json(&self) -> Result<JsValue, JsValue> {
240
- let object = super::to_object::to_object_struct(&self.0, Default::default());
246
+ let object = super::to_object::to_object_struct(&self.0, &Default::default());
241
247
  let js_object = js_sys::Object::new();
242
248
 
249
+ let version = match self.0 {
250
+ IdentityCreateTransition::V0(_) => "0",
251
+ };
252
+
253
+ js_sys::Reflect::set(&js_object, &"$version".to_owned().into(), &version.into())?;
254
+
243
255
  js_sys::Reflect::set(
244
256
  &js_object,
245
257
  &"type".to_owned().into(),
246
258
  &object.transition_type.into(),
247
259
  )?;
248
260
 
249
- js_sys::Reflect::set(
250
- &js_object,
251
- &"protocolVersion".to_owned().into(),
252
- &object.protocol_version.into(),
253
- )?;
254
-
255
261
  if let Some(signature) = object.signature {
256
262
  let signature_value: JsValue = if signature.is_empty() {
257
263
  JsValue::undefined()
@@ -290,8 +296,8 @@ impl IdentityCreateTransitionWasm {
290
296
  }
291
297
 
292
298
  #[wasm_bindgen(js_name=getModifiedDataIds)]
293
- pub fn get_modified_data_ids(&self) -> Vec<IdentifierWrapper> {
294
- let ids = self.0.get_modified_data_ids();
299
+ pub fn modified_data_ids(&self) -> Vec<IdentifierWrapper> {
300
+ let ids = self.0.modified_data_ids();
295
301
 
296
302
  ids.into_iter().map(IdentifierWrapper::from).collect()
297
303
  }
@@ -335,17 +341,25 @@ impl IdentityCreateTransitionWasm {
335
341
  BlsAdapter(JsValue::undefined().into())
336
342
  };
337
343
 
338
- self.0
344
+ // TODO: not the best approach because it involves cloning the transition
345
+ // Probably it worth to return `sign_by_private_key` per state transition
346
+ let mut wrapper = StateTransition::IdentityCreate(self.0.clone());
347
+ wrapper
339
348
  .sign_by_private_key(private_key.as_slice(), key_type, &bls_adapter)
340
- .with_js_error()
349
+ .with_js_error()?;
350
+
351
+ self.0.set_signature(wrapper.signature().to_owned());
352
+
353
+ Ok(())
341
354
  }
342
355
 
343
356
  #[wasm_bindgen(js_name=getSignature)]
344
357
  pub fn get_signature(&self) -> Buffer {
345
- Buffer::from_bytes_owned(self.0.get_signature().to_vec())
358
+ Buffer::from_bytes_owned(self.0.signature().to_vec())
346
359
  }
347
360
  #[wasm_bindgen(js_name=setSignature)]
348
361
  pub fn set_signature(&mut self, signature: Option<Vec<u8>>) {
349
- self.0.signature = BinaryData::new(signature.unwrap_or(vec![]))
362
+ self.0
363
+ .set_signature(BinaryData::new(signature.unwrap_or(vec![])))
350
364
  }
351
365
  }
@@ -7,7 +7,6 @@ use dpp::identity::state_transition::validate_public_key_signatures::PublicKeysS
7
7
  use dpp::identity::validation::{
8
8
  PublicKeysValidator, RequiredPurposeAndSecurityLevelValidator, PUBLIC_KEY_SCHEMA_FOR_TRANSITION,
9
9
  };
10
- use dpp::state_transition::state_transition_execution_context::StateTransitionExecutionContext;
11
10
 
12
11
  use dpp::version::{ProtocolVersionValidator, COMPATIBILITY_MAP, LATEST_VERSION};
13
12
  use dpp::ProtocolError;
@@ -1,8 +1,8 @@
1
1
  pub use identity_create_transition::*;
2
2
 
3
- pub mod apply_identity_create_transition;
3
+ // pub mod apply_identity_create_transition;
4
4
  pub mod identity_create_transition;
5
- pub mod identity_create_transition_basic_validator;
6
- pub mod identity_create_transition_state_validator;
5
+ // pub mod identity_create_transition_basic_validator;
6
+ // pub mod identity_create_transition_state_validator;
7
7
 
8
8
  mod to_object;
@@ -1,8 +1,8 @@
1
1
  use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
2
- use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyInCreation;
2
+ use dpp::state_transition::identity_create_transition::accessors::IdentityCreateTransitionAccessorsV0;
3
+ use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation;
3
4
  use dpp::{
4
- identifier::Identifier,
5
- identity::state_transition::identity_create_transition::IdentityCreateTransition,
5
+ identifier::Identifier, state_transition::identity_create_transition::IdentityCreateTransition,
6
6
  state_transition::StateTransitionLike,
7
7
  };
8
8
  use serde::Deserialize;
@@ -17,7 +17,6 @@ pub struct ToObjectOptions {
17
17
  #[derive(Default)]
18
18
  pub struct ToObject {
19
19
  pub transition_type: u8,
20
- pub protocol_version: u32,
21
20
  pub identity_id: Identifier,
22
21
  pub asset_lock_proof: AssetLockProof,
23
22
  pub public_keys: Vec<IdentityPublicKeyInCreation>,
@@ -26,19 +25,18 @@ pub struct ToObject {
26
25
 
27
26
  pub fn to_object_struct(
28
27
  transition: &IdentityCreateTransition,
29
- options: ToObjectOptions,
28
+ options: &ToObjectOptions,
30
29
  ) -> ToObject {
31
30
  let mut to_object = ToObject {
32
- transition_type: transition.get_type() as u8,
33
- protocol_version: transition.get_protocol_version(),
34
- public_keys: transition.get_public_keys().to_owned(),
35
- asset_lock_proof: transition.get_asset_lock_proof().to_owned(),
36
- identity_id: transition.get_identity_id().to_owned(),
31
+ transition_type: transition.state_transition_type() as u8,
32
+ public_keys: transition.public_keys().to_owned(),
33
+ asset_lock_proof: transition.asset_lock_proof().to_owned(),
34
+ identity_id: transition.identity_id().to_owned(),
37
35
  signature: None,
38
36
  };
39
37
 
40
38
  if !options.skip_signature.unwrap_or(false) {
41
- to_object.signature = Some(transition.get_signature().to_vec());
39
+ to_object.signature = Some(transition.signature().to_vec());
42
40
  }
43
41
 
44
42
  to_object
@@ -1,8 +1,8 @@
1
1
  pub use transition::*;
2
2
 
3
- pub mod apply_identity_credit_transfer_transition;
4
- pub mod identity_credit_transfer_transition_basic_validator;
5
- pub mod identity_credit_transfer_transition_state_validator;
3
+ // pub mod apply_identity_credit_transfer_transition;
4
+ // pub mod identity_credit_transfer_transition_basic_validator;
5
+ // pub mod identity_credit_transfer_transition_state_validator;
6
6
  pub mod transition;
7
7
 
8
8
  mod to_object;
@@ -1,10 +1,9 @@
1
1
  use dpp::identity::KeyID;
2
+
3
+ use dpp::state_transition::identity_credit_transfer_transition::accessors::IdentityCreditTransferTransitionAccessorsV0;
4
+ use dpp::state_transition::identity_credit_transfer_transition::IdentityCreditTransferTransition;
2
5
  use dpp::state_transition::StateTransitionIdentitySigned;
3
- use dpp::{
4
- identifier::Identifier,
5
- identity::state_transition::identity_credit_transfer_transition::IdentityCreditTransferTransition,
6
- state_transition::StateTransitionLike,
7
- };
6
+ use dpp::{identifier::Identifier, state_transition::StateTransitionLike};
8
7
  use serde::Deserialize;
9
8
  use std::default::Default;
10
9
 
@@ -17,7 +16,6 @@ pub struct ToObjectOptions {
17
16
  #[derive(Default)]
18
17
  pub struct ToObject {
19
18
  pub transition_type: u8,
20
- pub protocol_version: u32,
21
19
  pub identity_id: Identifier,
22
20
  pub recipient_id: Identifier,
23
21
  pub amount: u64,
@@ -30,19 +28,18 @@ pub fn to_object_struct(
30
28
  options: ToObjectOptions,
31
29
  ) -> ToObject {
32
30
  let mut to_object = ToObject {
33
- transition_type: transition.get_type() as u8,
34
- protocol_version: transition.get_protocol_version(),
35
- identity_id: *transition.get_identity_id(),
36
- recipient_id: *transition.get_recipient_id(),
37
- amount: transition.get_amount(),
31
+ transition_type: transition.state_transition_type() as u8,
32
+ identity_id: transition.identity_id(),
33
+ recipient_id: transition.recipient_id(),
34
+ amount: transition.amount(),
38
35
  ..ToObject::default()
39
36
  };
40
37
 
41
38
  if !options.skip_signature.unwrap_or(false) {
42
- let signature = Some(transition.get_signature().to_vec());
39
+ let signature = Some(transition.signature().to_vec());
43
40
  if let Some(signature) = &signature {
44
41
  if !signature.is_empty() {
45
- to_object.signature_public_key_id = transition.get_signature_public_key_id()
42
+ to_object.signature_public_key_id = Some(transition.signature_public_key_id())
46
43
  }
47
44
  }
48
45
  to_object.signature = signature;