@dashevo/wasm-dpp 0.25.0-dev.15 → 0.25.0-dev.17

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 (271) hide show
  1. package/Cargo.toml +27 -3
  2. package/dist/errors/patchConsensusErrors.js +94 -115
  3. package/dist/wasm/wasm_dpp.d.ts +2124 -4081
  4. package/dist/wasm/wasm_dpp.js +17746 -2656
  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 +11 -5
  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 +14 -0
  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 +2124 -4081
  18. package/package.json +5 -5
  19. package/scripts/build-wasm.sh +6 -9
  20. package/src/dash_platform_protocol.rs +172 -195
  21. package/src/data_contract/data_contract.rs +264 -200
  22. package/src/data_contract/data_contract_facade.rs +24 -46
  23. package/src/data_contract/errors/mod.rs +1 -0
  24. package/src/data_contract/mod.rs +2 -2
  25. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +91 -79
  26. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -73
  27. package/src/data_contract_factory/data_contract_factory.rs +39 -83
  28. package/src/document/document_facade.rs +74 -81
  29. package/src/document/errors/document_already_exists_error.rs +6 -6
  30. package/src/document/errors/document_no_revision_error.rs +1 -0
  31. package/src/document/errors/document_not_provided_error.rs +6 -6
  32. package/src/document/errors/invalid_document_action_error.rs +11 -7
  33. package/src/document/errors/invalid_initial_revision_error.rs +4 -4
  34. package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
  35. package/src/document/errors/mod.rs +5 -0
  36. package/src/document/errors/revision_absent_error.rs +6 -6
  37. package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
  38. package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
  39. package/src/document/extended_document.rs +76 -76
  40. package/src/document/factory.rs +127 -123
  41. package/src/document/generate_document_id.rs +2 -2
  42. package/src/document/mod.rs +162 -148
  43. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
  44. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
  45. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
  46. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
  47. package/src/document/state_transition/document_batch_transition/mod.rs +230 -217
  48. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -10
  49. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -10
  50. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -11
  51. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -10
  52. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -10
  53. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -10
  54. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -10
  55. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -10
  56. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -10
  57. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -10
  58. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -10
  59. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -10
  60. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -10
  61. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -10
  62. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -10
  63. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -10
  64. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -10
  65. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -10
  66. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -8
  67. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -10
  68. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -10
  69. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -10
  70. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -10
  71. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -10
  72. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -10
  73. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -10
  74. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -10
  75. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -10
  76. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -10
  77. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -10
  78. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -10
  79. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -10
  80. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -10
  81. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -10
  82. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -10
  83. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -10
  84. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -10
  85. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -10
  86. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -10
  87. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -10
  88. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -10
  89. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -10
  90. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -10
  91. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -10
  92. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -10
  93. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -10
  94. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -10
  95. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -10
  96. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -10
  97. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -10
  98. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -10
  99. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -10
  100. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -10
  101. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -10
  102. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -10
  103. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -10
  104. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +1 -10
  105. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -10
  106. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -10
  107. package/src/errors/consensus/basic/json_schema_error.rs +1 -9
  108. package/src/errors/consensus/basic/mod.rs +2 -0
  109. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -10
  110. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
  111. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -10
  112. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -10
  113. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -10
  114. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -10
  115. package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
  116. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -10
  117. package/src/errors/consensus/consensus_error.rs +39 -21
  118. package/src/errors/consensus/deserialize.rs +2 -2
  119. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -3
  120. package/src/errors/consensus/signature/basic_bls_error.rs +1 -10
  121. package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -10
  122. package/src/errors/consensus/signature/identity_not_found_error.rs +4 -3
  123. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -10
  124. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -3
  125. package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
  126. package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
  127. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -2
  128. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -2
  129. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -2
  130. package/src/errors/consensus/state/data_contract/mod.rs +7 -1
  131. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -10
  132. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -10
  133. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -10
  134. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -10
  135. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +1 -10
  136. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -10
  137. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -10
  138. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -13
  139. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -10
  140. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -10
  141. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -10
  142. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -10
  143. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -10
  144. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -10
  145. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -10
  146. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -10
  147. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -10
  148. package/src/errors/consensus/value_error.rs +1 -10
  149. package/src/errors/from.rs +12 -8
  150. package/src/errors/mod.rs +7 -7
  151. package/src/identity/factory_utils.rs +10 -10
  152. package/src/identity/identity.rs +275 -0
  153. package/src/identity/identity_facade.rs +87 -70
  154. package/src/identity/identity_factory.rs +74 -54
  155. package/src/identity/identity_public_key/mod.rs +86 -62
  156. package/src/identity/mod.rs +25 -256
  157. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
  158. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
  159. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
  160. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
  161. package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
  162. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +66 -52
  163. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
  164. package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
  165. package/src/identity/state_transition/identity_create_transition/to_object.rs +9 -11
  166. package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
  167. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
  168. package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
  169. package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
  170. package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
  171. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
  172. package/src/identity/state_transition/identity_public_key_transitions.rs +81 -66
  173. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +64 -51
  174. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
  175. package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
  176. package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
  177. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +95 -92
  178. package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
  179. package/src/identity/state_transition/identity_update_transition/to_object.rs +14 -18
  180. package/src/identity/state_transition/mod.rs +4 -2
  181. package/src/identity/state_transition/transition_types.rs +4 -0
  182. package/src/lib.rs +9 -9
  183. package/src/metadata.rs +3 -3
  184. package/src/protocol_version.rs +2 -2
  185. package/src/state_transition/conversion.rs +11 -1
  186. package/src/state_transition/errors/invalid_state_transition_error.rs +9 -9
  187. package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
  188. package/src/state_transition/mod.rs +137 -139
  189. package/src/state_transition/state_transition_facade.rs +2 -3
  190. package/src/state_transition/state_transition_factory.rs +142 -153
  191. package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
  192. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +8 -4
  193. package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
  194. package/src/utils.rs +4 -2
  195. package/src/validation/validation_result.rs +1 -1
  196. package/test/integration/dataContract/DataContractFacade.spec.js +11 -15
  197. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +1 -1
  198. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +1 -1
  199. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +1 -1
  200. package/test/integration/document/Document.spec.js +3 -3
  201. package/test/integration/document/DocumentFacade.spec.js +34 -33
  202. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +1 -1
  203. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +1 -1
  204. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
  205. package/test/integration/document/validation/validateDocumentFactory.spec.js +1 -1
  206. package/test/integration/identity/IdentityFacade.spec.js +29 -58
  207. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +2 -2
  208. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +1 -1
  209. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
  210. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +2 -2
  211. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
  212. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +1 -1
  213. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +2 -2
  214. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +1 -1
  215. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +4 -3
  216. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +1 -1
  217. package/test/integration/identity/validation/validateIdentityFactory.spec.js +2 -2
  218. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +1 -1
  219. package/test/integration/stateTransition/StateTransitionFacade.spec.js +39 -48
  220. package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
  221. package/test/unit/DashPlatformProtocol.spec.js +4 -18
  222. package/test/unit/dataContract/DataContract.spec.js +100 -121
  223. package/test/unit/dataContract/DataContractFactory.spec.js +21 -1
  224. package/test/unit/dataContract/createDataContract.spec.js +1 -1
  225. package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
  226. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +23 -13
  227. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
  228. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +1 -1
  229. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +16 -7
  230. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
  231. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +1 -1
  232. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +1 -1
  233. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +1 -1
  234. package/test/unit/document/Document.spec.js +18 -10
  235. package/test/unit/document/DocumentFactory.spec.js +10 -23
  236. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
  237. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +4 -4
  238. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +1 -1
  239. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  240. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
  241. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
  242. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
  243. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
  244. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +1 -1
  245. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
  246. package/test/unit/identity/Identity.spec.js +34 -74
  247. package/test/unit/identity/IdentityFactory.spec.js +55 -68
  248. package/test/unit/identity/IdentityPublicKey.spec.js +30 -47
  249. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +23 -55
  250. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +2 -2
  251. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +2 -2
  252. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +7 -28
  253. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +4 -4
  254. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
  255. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +19 -36
  256. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
  257. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
  258. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
  259. package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
  260. package/test/unit/stateTransition/StateTransitionFactory.spec.js +13 -18
  261. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +1 -1
  262. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +1 -1
  263. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +1 -1
  264. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +1 -1
  265. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +2 -2
  266. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
  267. package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
  268. package/test-d/index.test-d.ts +2 -2
  269. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
  270. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
  271. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
@@ -2,263 +2,32 @@ mod factory_utils;
2
2
  pub mod identity_facade;
3
3
  mod identity_factory;
4
4
  mod identity_public_key;
5
- mod validation;
6
-
7
- use js_sys::Array;
8
- use serde_json::Value;
9
- use wasm_bindgen::prelude::*;
10
-
11
- use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
12
- use dpp::identity::IdentityPublicKey;
13
- use dpp::identity::{Identity, KeyID};
14
- use dpp::metadata::Metadata;
15
- use dpp::serialization_traits::{PlatformDeserializable, PlatformSerializable};
16
- use dpp::{Convertible, ProtocolError};
17
-
18
- use crate::identifier::IdentifierWrapper;
19
- use crate::utils::{to_vec_of_serde_values, IntoWasm, WithJsError};
20
- use crate::MetadataWasm;
21
- use crate::{utils, with_js_error};
5
+ // mod validation;
6
+ //
7
+ // use js_sys::Array;
8
+ // use serde_json::Value;
9
+ // use wasm_bindgen::prelude::*;
10
+ //
11
+ // use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
12
+ // use dpp::identity::IdentityPublicKey;
13
+ // use dpp::identity::{Identity, KeyID};
14
+ // use dpp::metadata::Metadata;
15
+ // use dpp::serialization::serialization_traits::{PlatformDeserializable, PlatformSerializable};
16
+ // use dpp::{ ProtocolError};
17
+ //
18
+ // use crate::identifier::IdentifierWrapper;
19
+ // use crate::utils::{to_vec_of_serde_values, IntoWasm, WithJsError};
20
+ // use crate::MetadataWasm;
21
+ // use crate::{utils, with_js_error};
22
22
  pub use identity_public_key::*;
23
-
24
- use crate::buffer::Buffer;
25
- use crate::errors::from_dpp_err;
26
- pub use state_transition::*;
27
-
28
- pub mod credits_converter;
23
+ //
24
+ // use crate::buffer::Buffer;
25
+ // use crate::errors::from_dpp_err;
26
+ // pub use state_transition::*;
27
+ //
28
+ // pub mod credits_converter;
29
29
  pub mod errors;
30
+ mod identity;
30
31
  pub mod state_transition;
31
32
 
32
- #[wasm_bindgen(js_name=Identity)]
33
- #[derive(Clone)]
34
- pub struct IdentityWasm(Identity);
35
-
36
- impl From<IdentityWasm> for Identity {
37
- fn from(identity: IdentityWasm) -> Self {
38
- identity.0
39
- }
40
- }
41
-
42
- impl From<Identity> for IdentityWasm {
43
- fn from(identity: Identity) -> Self {
44
- Self(identity)
45
- }
46
- }
47
-
48
- #[wasm_bindgen(js_class=Identity)]
49
- impl IdentityWasm {
50
- #[wasm_bindgen(constructor)]
51
- pub fn new(raw_identity: JsValue) -> Result<IdentityWasm, JsValue> {
52
- let identity_json = utils::stringify(&raw_identity)?;
53
- let raw_identity: Value =
54
- serde_json::from_str(&identity_json).map_err(|e| e.to_string())?;
55
-
56
- let identity = Identity::from_json(raw_identity).map_err(from_dpp_err)?;
57
- Ok(IdentityWasm(identity))
58
- }
59
-
60
- #[wasm_bindgen(js_name=getProtocolVersion)]
61
- pub fn get_protocol_version(&self) -> u32 {
62
- self.0.get_protocol_version()
63
- }
64
-
65
- #[wasm_bindgen(js_name=getId)]
66
- pub fn get_id(&self) -> IdentifierWrapper {
67
- (*self.0.get_id()).into()
68
- }
69
-
70
- #[wasm_bindgen(js_name=setPublicKeys)]
71
- pub fn set_public_keys(&mut self, public_keys: js_sys::Array) -> Result<usize, JsValue> {
72
- let raw_public_keys = to_vec_of_serde_values(public_keys.iter())?;
73
- if raw_public_keys.is_empty() {
74
- return Err(format!("Setting public keys failed. The input ('{}') is invalid. You must use array of PublicKeys", public_keys.to_string()).into());
75
- }
76
-
77
- let public_keys = raw_public_keys
78
- .into_iter()
79
- .map(|v| IdentityPublicKey::from_json_object(v).map(|key| (key.id, key)))
80
- .collect::<Result<_, _>>()
81
- .map_err(|e| format!("converting to collection of IdentityPublicKeys failed: {e:#}"))?;
82
-
83
- self.0.set_public_keys(public_keys);
84
-
85
- Ok(self.0.get_public_keys().len())
86
- }
87
-
88
- #[wasm_bindgen(js_name=getPublicKeys)]
89
- pub fn get_public_keys(&self) -> Vec<JsValue> {
90
- self.0
91
- .get_public_keys()
92
- .iter()
93
- .map(|(_, k)| k.to_owned())
94
- .map(IdentityPublicKeyWasm::from)
95
- .map(JsValue::from)
96
- .collect()
97
- }
98
-
99
- #[wasm_bindgen(js_name=getPublicKeyById)]
100
- pub fn get_public_key_by_id(&self, key_id: u32) -> Option<IdentityPublicKeyWasm> {
101
- let key_id = key_id as KeyID;
102
- self.0
103
- .get_public_key_by_id(key_id)
104
- .map(IdentityPublicKey::to_owned)
105
- .map(Into::into)
106
- }
107
-
108
- #[wasm_bindgen(getter)]
109
- pub fn balance(&self) -> f64 {
110
- self.0.get_balance() as f64
111
- }
112
-
113
- #[wasm_bindgen(js_name=getBalance)]
114
- pub fn get_balance(&self) -> f64 {
115
- self.0.get_balance() as f64
116
- }
117
-
118
- #[wasm_bindgen(js_name=setBalance)]
119
- pub fn set_balance(&mut self, balance: f64) {
120
- self.0.set_balance(balance as u64);
121
- }
122
-
123
- #[wasm_bindgen(js_name=increaseBalance)]
124
- pub fn increase_balance(&mut self, amount: f64) -> f64 {
125
- self.0.increase_balance(amount as u64) as f64
126
- }
127
-
128
- #[wasm_bindgen(js_name=reduceBalance)]
129
- pub fn reduce_balance(&mut self, amount: f64) -> f64 {
130
- self.0.reduce_balance(amount as u64) as f64
131
- }
132
-
133
- #[wasm_bindgen(js_name=setAssetLockProof)]
134
- pub fn set_asset_lock_proof(&mut self, lock: JsValue) -> Result<(), JsValue> {
135
- let asset_lock_proof = create_asset_lock_proof_from_wasm_instance(&lock)?;
136
- self.0.set_asset_lock_proof(asset_lock_proof);
137
- Ok(())
138
- }
139
-
140
- #[wasm_bindgen(js_name=getAssetLockProof)]
141
- pub fn get_asset_lock_proof(&self) -> Option<AssetLockProofWasm> {
142
- self.0
143
- .get_asset_lock_proof()
144
- .map(AssetLockProof::to_owned)
145
- .map(Into::into)
146
- }
147
-
148
- #[wasm_bindgen(js_name=setRevision)]
149
- pub fn set_revision(&mut self, revision: f64) {
150
- self.0.set_revision(revision as u64);
151
- }
152
-
153
- #[wasm_bindgen(js_name=getRevision)]
154
- pub fn get_revision(&self) -> f64 {
155
- self.0.get_revision() as f64
156
- }
157
-
158
- #[wasm_bindgen(js_name=setMetadata)]
159
- pub fn set_metadata(&mut self, metadata: JsValue) -> Result<(), JsValue> {
160
- if !metadata.is_falsy() {
161
- let metadata = metadata.to_wasm::<MetadataWasm>("Metadata")?;
162
- self.0.set_metadata(metadata.to_owned().into())
163
- }
164
-
165
- Ok(())
166
- }
167
-
168
- #[wasm_bindgen(js_name=getMetadata)]
169
- pub fn get_metadata(&self) -> Option<MetadataWasm> {
170
- self.0
171
- .get_metadata()
172
- .map(Metadata::to_owned)
173
- .map(Into::into)
174
- }
175
-
176
- #[wasm_bindgen(js_name=from)]
177
- pub fn from(object: JsValue) -> Self {
178
- let i: Identity = serde_json::from_str(&object.as_string().unwrap()).unwrap();
179
- IdentityWasm(i)
180
- }
181
-
182
- #[wasm_bindgen(js_name=toJSON)]
183
- pub fn to_json(&self) -> Result<JsValue, JsValue> {
184
- let json = self.0.to_json().with_js_error()?;
185
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
186
- with_js_error!(json.serialize(&serializer))
187
- }
188
-
189
- #[wasm_bindgen(js_name=toObject)]
190
- pub fn to_object(&self) -> Result<JsValue, JsValue> {
191
- let js_public_keys = js_sys::Array::new();
192
- for pk in self.0.public_keys.values() {
193
- let pk_wasm = IdentityPublicKeyWasm::from(pk.to_owned());
194
- js_public_keys.push(&pk_wasm.to_object()?);
195
- }
196
-
197
- let value = self.0.to_cleaned_object().with_js_error()?;
198
-
199
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
200
- let js_object = with_js_error!(value.serialize(&serializer))?;
201
-
202
- let id = Buffer::from_bytes(self.0.id.as_slice());
203
-
204
- js_sys::Reflect::set(&js_object, &"id".to_owned().into(), &id)?;
205
-
206
- js_sys::Reflect::set(
207
- &js_object,
208
- &"publicKeys".to_owned().into(),
209
- &JsValue::from(&js_public_keys),
210
- )?;
211
-
212
- Ok(js_object)
213
- }
214
-
215
- #[wasm_bindgen(js_name=toBuffer)]
216
- pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
217
- let bytes = PlatformSerializable::serialize(&self.0.clone()).with_js_error()?;
218
- Ok(Buffer::from_bytes(&bytes))
219
- }
220
-
221
- #[wasm_bindgen]
222
- pub fn hash(&self) -> Result<Vec<u8>, JsValue> {
223
- self.0.hash().with_js_error()
224
- }
225
-
226
- #[wasm_bindgen(js_name=addPublicKey)]
227
- pub fn add_public_key(&mut self, public_key: IdentityPublicKeyWasm) {
228
- self.0
229
- .public_keys
230
- .insert(public_key.get_id(), public_key.into());
231
- }
232
-
233
- // The method `addPublicKeys()` takes an variadic array of `IdentityPublicKeyWasm` as an input. But elements of the array
234
- // are available ONLY as `JsValue`. WASM-bindgen uses output from `toJSON()` to store WASM-object as `JsValue`.
235
- // `toJSON()` converts binary data to `base64` or `base58`. Therefore we need to use `from_json_object()` constructor to
236
- // to convert strings back into bytes and get `IdentityPublicKeyWasm`
237
- #[wasm_bindgen(js_name=addPublicKeys, variadic)]
238
- pub fn add_public_keys(&mut self, js_public_keys: JsValue) -> Result<(), JsValue> {
239
- let js_public_keys_array = Array::from(&js_public_keys);
240
- let json_objects = to_vec_of_serde_values(js_public_keys_array.iter())?;
241
-
242
- let public_keys: Vec<IdentityPublicKey> = json_objects
243
- .into_iter()
244
- .map(IdentityPublicKey::from_json_object)
245
- .collect::<Result<Vec<IdentityPublicKey>, ProtocolError>>()
246
- .with_js_error()?;
247
-
248
- self.0
249
- .add_public_keys(public_keys.into_iter().map(Into::into));
250
- Ok(())
251
- }
252
-
253
- #[wasm_bindgen(js_name=getPublicKeyMaxId)]
254
- pub fn get_public_ke_max_id(&self) -> f64 {
255
- self.0.get_public_key_max_id() as f64
256
- }
257
-
258
- #[wasm_bindgen(js_name=fromBuffer)]
259
- pub fn from_buffer(buffer: Vec<u8>) -> Result<IdentityWasm, JsValue> {
260
- let identity: Identity =
261
- PlatformDeserializable::deserialize(buffer.as_slice()).with_js_error()?;
262
- Ok(identity.into())
263
- }
264
- }
33
+ pub use identity::*;
@@ -1,7 +1,6 @@
1
1
  use dpp::identity::state_transition::asset_lock_proof::{
2
2
  AssetLockTransactionValidator, ChainAssetLockProofStructureValidator,
3
3
  };
4
- use dpp::state_transition::state_transition_execution_context::StateTransitionExecutionContext;
5
4
  use dpp::ProtocolError;
6
5
  use std::sync::Arc;
7
6
  use wasm_bindgen::prelude::*;
@@ -1,4 +1,6 @@
1
1
  pub use chain_asset_lock_proof::*;
2
2
 
3
3
  pub mod chain_asset_lock_proof;
4
- pub mod chain_asset_lock_proof_structure_validator;
4
+
5
+ // TODO(versioning): restore?
6
+ // pub mod chain_asset_lock_proof_structure_validator;
@@ -1,7 +1,6 @@
1
1
  use dpp::identity::state_transition::asset_lock_proof::{
2
2
  AssetLockTransactionValidator, InstantAssetLockProofStructureValidator,
3
3
  };
4
- use dpp::state_transition::state_transition_execution_context::StateTransitionExecutionContext;
5
4
  use dpp::ProtocolError;
6
5
  use std::sync::Arc;
7
6
  use wasm_bindgen::prelude::*;
@@ -1,4 +1,6 @@
1
1
  pub use instant_asset_lock_proof::*;
2
2
 
3
3
  pub mod instant_asset_lock_proof;
4
- pub mod instant_asset_lock_proof_structure_validator;
4
+
5
+ // TODO(versioning): restore?
6
+ // pub mod instant_asset_lock_proof_structure_validator;
@@ -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
+ // }