@dashevo/wasm-dpp 0.24.0-dev.30 → 0.25.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/Cargo.toml +2 -2
  2. package/dist/wasm/wasm_dpp.d.ts +722 -571
  3. package/dist/wasm/wasm_dpp.js +169 -106
  4. package/dist/wasm/wasm_dpp_bg.js +1 -1
  5. package/lib/wasm/wasm_dpp.d.ts +722 -571
  6. package/package.json +3 -3
  7. package/src/data_contract/data_contract.rs +1 -1
  8. package/src/data_contract/data_contract_facade.rs +2 -2
  9. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +1 -1
  10. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +2 -12
  11. package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +5 -3
  12. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +6 -2
  13. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +2 -14
  14. package/src/data_contract/state_transition/data_contract_update_transition/validation.rs +6 -4
  15. package/src/decode_protocol_entity.rs +19 -19
  16. package/src/document/extended_document.rs +4 -1
  17. package/src/document/fetch_and_validate_data_contract.rs +2 -2
  18. package/src/document/mod.rs +5 -3
  19. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +9 -6
  20. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +1 -1
  21. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +1 -1
  22. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +1 -2
  23. package/src/document/state_transition/document_batch_transition/mod.rs +13 -17
  24. package/src/document/state_transition/document_batch_transition/validation/basic/validate_documents_batch_transition_basic.rs +4 -4
  25. package/src/document/state_transition/document_batch_transition/validation/state/validate_documents_batch_transitions_state.rs +3 -1
  26. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +1 -1
  27. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +3 -3
  28. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +1 -1
  29. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -1
  30. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -1
  31. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +3 -3
  32. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +3 -3
  33. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +4 -4
  34. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -1
  35. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -1
  36. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -1
  37. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -1
  38. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -1
  39. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -1
  40. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -1
  41. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -1
  42. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -1
  43. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +2 -2
  44. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +1 -1
  45. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -1
  46. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -1
  47. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -1
  48. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -1
  49. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +2 -2
  50. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -1
  51. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -1
  52. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +2 -2
  53. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -1
  54. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -1
  55. package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -1
  56. package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -1
  57. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -1
  58. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -1
  59. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -1
  60. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -1
  61. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -1
  62. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -1
  63. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -1
  64. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -1
  65. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -1
  66. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -1
  67. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +35 -0
  68. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -1
  69. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -1
  70. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -1
  71. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -1
  72. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -1
  73. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -1
  74. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -1
  75. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -1
  76. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -1
  77. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -1
  78. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -1
  79. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -1
  80. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -1
  81. package/src/errors/consensus/basic/identity/mod.rs +2 -0
  82. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +2 -2
  83. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -1
  84. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -3
  85. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -1
  86. package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -1
  87. package/src/errors/consensus/basic/json_schema_error.rs +1 -3
  88. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -1
  89. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -2
  90. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -1
  91. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -1
  92. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -1
  93. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -1
  94. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -1
  95. package/src/errors/consensus/consensus_error.rs +24 -4
  96. package/src/errors/consensus/deserialize.rs +1 -1
  97. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +1 -1
  98. package/src/errors/consensus/signature/basic_bls_error.rs +38 -0
  99. package/src/errors/consensus/signature/basic_ecdsa_error.rs +38 -0
  100. package/src/errors/consensus/signature/mod.rs +6 -0
  101. package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +38 -0
  102. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +2 -2
  103. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +58 -1
  104. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +66 -1
  105. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +50 -1
  106. package/src/errors/consensus/state/document/document_already_present_error.rs +1 -1
  107. package/src/errors/consensus/state/document/document_not_found_error.rs +1 -1
  108. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -1
  109. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +2 -2
  110. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -1
  111. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -1
  112. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +1 -1
  113. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -1
  114. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -1
  115. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -1
  116. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -1
  117. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -1
  118. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -1
  119. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +1 -1
  120. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -1
  121. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -1
  122. package/src/errors/consensus/state/identity/missing_identity_public_key_ids_error.rs +26 -0
  123. package/src/errors/consensus/state/identity/mod.rs +2 -0
  124. package/src/errors/consensus/value_error.rs +1 -1
  125. package/src/errors/from.rs +0 -1
  126. package/src/generate_temporary_ecdsa_private_key.rs +2 -6
  127. package/src/identity/factory_utils.rs +4 -4
  128. package/src/identity/identity_public_key/key_type.rs +2 -0
  129. package/src/identity/identity_public_key/purpose.rs +7 -0
  130. package/src/identity/mod.rs +1 -1
  131. package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs +6 -2
  132. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +8 -18
  133. package/src/identity/state_transition/identity_create_transition/identity_create_transition_state_validator.rs +3 -1
  134. package/src/identity/state_transition/identity_create_transition/to_object.rs +2 -2
  135. package/src/identity/state_transition/identity_public_key_transitions.rs +11 -11
  136. package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs +6 -2
  137. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +1 -12
  138. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_state_validator.rs +3 -1
  139. package/src/identity/state_transition/identity_update_transition/apply_identity_update_transition.rs +3 -1
  140. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  141. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +5 -18
  142. package/src/identity/state_transition/identity_update_transition/identity_update_transition_state_validator.rs +3 -2
  143. package/src/identity/state_transition/identity_update_transition/to_object.rs +2 -2
  144. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  145. package/src/state_repository.rs +3 -2
  146. package/src/state_transition/fee/calculate_state_transition_fee.rs +8 -5
  147. package/src/state_transition/state_transition_facade.rs +16 -15
  148. package/src/state_transition/validation/state_transition_fee_validator.rs +3 -1
  149. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +3 -1
  150. package/src/state_transition/validation/validate_state_transition_key_signature.rs +7 -1
  151. package/src/utils.rs +2 -4
  152. package/src/validation/validation_result.rs +12 -7
  153. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +0 -17
  154. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +10 -3
  155. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +4 -7
  156. package/test/integration/stateTransition/StateTransitionFacade.spec.js +20 -7
  157. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -7
  158. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +4 -3
  159. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -3
  160. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +3 -2
  161. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +5 -6
  162. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +20 -18
  163. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +1 -2
  164. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +7 -3
  165. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +1 -2
  166. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -1
  167. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
  168. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +10 -4
  169. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +3 -1
  170. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +7 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dashevo/wasm-dpp",
3
- "version": "0.24.0-dev.30",
3
+ "version": "0.25.0-dev.2",
4
4
  "description": "The JavaScript implementation of the Dash Platform Protocol",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,8 +44,8 @@
44
44
  "@babel/core": "^7.15.5",
45
45
  "@babel/preset-env": "^7.15.4",
46
46
  "@dashevo/dashcore-lib": "~0.20.3",
47
- "@dashevo/dpns-contract": "0.24.0-dev.30",
48
- "@dashevo/dpp": "0.24.0-dev.30",
47
+ "@dashevo/dpns-contract": "0.25.0-dev.2",
48
+ "@dashevo/dpp": "0.25.0-dev.2",
49
49
  "@dashevo/wasm-re2": "~1.0.2",
50
50
  "@types/bs58": "^4.0.1",
51
51
  "@types/node": "^14.6.0",
@@ -303,7 +303,7 @@ impl DataContractWasm {
303
303
 
304
304
  #[wasm_bindgen(js_name=toBuffer)]
305
305
  pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
306
- let bytes = self.0.to_buffer().with_js_error()?;
306
+ let bytes = self.0.to_cbor_buffer().with_js_error()?;
307
307
  Ok(Buffer::from_bytes(&bytes))
308
308
  }
309
309
 
@@ -11,10 +11,10 @@ use dpp::version::ProtocolVersionValidator;
11
11
  use crate::entropy_generator::ExternalEntropyGenerator;
12
12
  use crate::utils::{get_bool_from_options, IntoWasm, WithJsError, SKIP_VALIDATION_PROPERTY_NAME};
13
13
  use crate::validation::ValidationResultWasm;
14
- use dpp::platform_value::Value;
14
+
15
15
  use dpp::{Convertible, ProtocolError};
16
16
  use std::sync::Arc;
17
- use wasm_bindgen::__rt::Ref;
17
+
18
18
  use wasm_bindgen::prelude::*;
19
19
 
20
20
  #[wasm_bindgen(js_name=DataContractFacade)]
@@ -38,7 +38,7 @@ impl ApplyDataContractCreateTransitionWasm {
38
38
  transition: DataContractCreateTransitionWasm,
39
39
  ) -> Result<(), JsError> {
40
40
  self.0
41
- .apply_data_contract_create_transition(&transition.into())
41
+ .apply_data_contract_create_transition(&transition.into(), None)
42
42
  .await
43
43
  .map_err(|e| e.deref().into())
44
44
  }
@@ -24,7 +24,7 @@ use crate::errors::protocol_error::from_protocol_error;
24
24
  use crate::utils::WithJsError;
25
25
  use crate::{
26
26
  buffer::Buffer, identifier::IdentifierWrapper, with_js_error, DataContractParameters,
27
- DataContractWasm, IdentityPublicKeyWasm, StateTransitionExecutionContextWasm,
27
+ DataContractWasm, IdentityPublicKeyWasm,
28
28
  };
29
29
 
30
30
  #[derive(Clone)]
@@ -110,7 +110,7 @@ impl DataContractCreateTransitionWasm {
110
110
  pub fn to_buffer(&self, skip_signature: Option<bool>) -> Result<Buffer, JsValue> {
111
111
  let bytes = self
112
112
  .0
113
- .to_buffer(skip_signature.unwrap_or(false))
113
+ .to_cbor_buffer(skip_signature.unwrap_or(false))
114
114
  .with_js_error()?;
115
115
  Ok(Buffer::from_bytes(&bytes))
116
116
  }
@@ -139,16 +139,6 @@ impl DataContractCreateTransitionWasm {
139
139
  self.0.is_identity_state_transition()
140
140
  }
141
141
 
142
- #[wasm_bindgen(js_name=setExecutionContext)]
143
- pub fn set_execution_context(&mut self, context: &StateTransitionExecutionContextWasm) {
144
- self.0.set_execution_context(context.into())
145
- }
146
-
147
- #[wasm_bindgen(js_name=getExecutionContext)]
148
- pub fn get_execution_context(&mut self) -> StateTransitionExecutionContextWasm {
149
- self.0.get_execution_context().into()
150
- }
151
-
152
142
  #[wasm_bindgen(js_name=toObject)]
153
143
  pub fn to_object(&self, skip_signature: Option<bool>) -> Result<JsValue, JsValue> {
154
144
  let serde_object = self
@@ -3,7 +3,7 @@ use std::sync::Arc;
3
3
  use dpp::data_contract::state_transition::data_contract_create_transition::DataContractCreateTransition;
4
4
 
5
5
  use dpp::consensus::basic::value_error::ValueError;
6
- use dpp::validation::SimpleValidationResult;
6
+ use dpp::validation::SimpleConsensusValidationResult;
7
7
  use dpp::{
8
8
  data_contract::state_transition::data_contract_create_transition::validation::state::{
9
9
  validate_data_contract_create_transition_basic::DataContractCreateTransitionBasicValidator,
@@ -20,7 +20,7 @@ use crate::utils::WithJsError;
20
20
  use crate::validation::ValidationResultWasm;
21
21
  use crate::{
22
22
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
23
- DataContractCreateTransitionWasm,
23
+ DataContractCreateTransitionWasm, StateTransitionExecutionContextWasm,
24
24
  };
25
25
 
26
26
  use super::DataContractCreateTransitionParameters;
@@ -29,11 +29,13 @@ use super::DataContractCreateTransitionParameters;
29
29
  pub async fn validate_data_contract_create_transition_state(
30
30
  state_repository: ExternalStateRepositoryLike,
31
31
  state_transition: DataContractCreateTransitionWasm,
32
+ execution_context: &StateTransitionExecutionContextWasm,
32
33
  ) -> Result<ValidationResultWasm, JsValue> {
33
34
  let wrapped_state_repository = ExternalStateRepositoryLikeWrapper::new(state_repository);
34
35
  let validation_result = dpp_validate_data_contract_create_transition_state(
35
36
  &wrapped_state_repository,
36
37
  &state_transition.into(),
38
+ &execution_context.to_owned().into(),
37
39
  )
38
40
  .await
39
41
  .with_js_error()?;
@@ -48,7 +50,7 @@ pub async fn validate_data_contract_create_transition_basic(
48
50
  serde_wasm_bindgen::from_value(raw_parameters)?;
49
51
 
50
52
  let mut value = platform_value::to_value(&parameters)?;
51
- let mut validation_result = SimpleValidationResult::default();
53
+ let mut validation_result = SimpleConsensusValidationResult::default();
52
54
  if let Some(err) = DataContractCreateTransition::clean_value(&mut value).err() {
53
55
  validation_result.add_error(ValueError::new(err));
54
56
  return Ok(validation_result.map(|_| JsValue::undefined()).into());
@@ -6,7 +6,7 @@ use wasm_bindgen::prelude::*;
6
6
 
7
7
  use crate::{
8
8
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
9
- DataContractUpdateTransitionWasm,
9
+ DataContractUpdateTransitionWasm, StateTransitionExecutionContextWasm,
10
10
  };
11
11
 
12
12
  #[wasm_bindgen(js_name=ApplyDataContractUpdateTransition)]
@@ -36,9 +36,13 @@ impl ApplyDataContractUpdateTransitionWasm {
36
36
  pub async fn apply_data_contract_update_transition(
37
37
  &self,
38
38
  transition: DataContractUpdateTransitionWasm,
39
+ execution_context: &StateTransitionExecutionContextWasm,
39
40
  ) -> Result<(), JsError> {
40
41
  self.0
41
- .apply_data_contract_update_transition(&transition.into())
42
+ .apply_data_contract_update_transition(
43
+ &transition.into(),
44
+ &execution_context.to_owned().into(),
45
+ )
42
46
  .await
43
47
  .map_err(|e| e.deref().into())
44
48
  }
@@ -6,8 +6,6 @@ use std::collections::HashMap;
6
6
  pub use apply::*;
7
7
  pub use validation::*;
8
8
 
9
- use dpp::consensus::ConsensusError::SignatureError as ConsensusSignatureErrorVariant;
10
-
11
9
  use dpp::consensus::ConsensusError;
12
10
  use dpp::{
13
11
  consensus::signature::SignatureError,
@@ -28,7 +26,7 @@ use crate::{
28
26
  };
29
27
  use crate::{
30
28
  buffer::Buffer, errors::protocol_error::from_protocol_error, identifier::IdentifierWrapper,
31
- with_js_error, DataContractParameters, DataContractWasm, StateTransitionExecutionContextWasm,
29
+ with_js_error, DataContractParameters, DataContractWasm,
32
30
  };
33
31
 
34
32
  #[derive(Clone)]
@@ -114,7 +112,7 @@ impl DataContractUpdateTransitionWasm {
114
112
  pub fn to_buffer(&self, skip_signature: Option<bool>) -> Result<Buffer, JsValue> {
115
113
  let bytes = self
116
114
  .0
117
- .to_buffer(skip_signature.unwrap_or(false))
115
+ .to_cbor_buffer(skip_signature.unwrap_or(false))
118
116
  .with_js_error()?;
119
117
  Ok(Buffer::from_bytes(&bytes))
120
118
  }
@@ -143,16 +141,6 @@ impl DataContractUpdateTransitionWasm {
143
141
  self.0.is_identity_state_transition()
144
142
  }
145
143
 
146
- #[wasm_bindgen(js_name=setExecutionContext)]
147
- pub fn set_execution_context(&mut self, context: &StateTransitionExecutionContextWasm) {
148
- self.0.set_execution_context(context.into())
149
- }
150
-
151
- #[wasm_bindgen(js_name=getExecutionContext)]
152
- pub fn get_execution_context(&mut self) -> StateTransitionExecutionContextWasm {
153
- self.0.get_execution_context().into()
154
- }
155
-
156
144
  #[wasm_bindgen(js_name=hash)]
157
145
  pub fn hash(&self, skip_signature: Option<bool>) -> Result<Buffer, JsValue> {
158
146
  let bytes = self
@@ -3,7 +3,7 @@ use std::{collections::BTreeMap, sync::Arc};
3
3
  use dpp::data_contract::state_transition::data_contract_update_transition::DataContractUpdateTransition;
4
4
 
5
5
  use dpp::consensus::basic::value_error::ValueError;
6
- use dpp::validation::{AsyncDataValidatorWithContext, SimpleValidationResult};
6
+ use dpp::validation::{AsyncDataValidatorWithContext, SimpleConsensusValidationResult};
7
7
  use dpp::{
8
8
  data_contract::state_transition::data_contract_update_transition::validation::{
9
9
  basic::{
@@ -29,12 +29,14 @@ use crate::{
29
29
  #[wasm_bindgen(js_name=validateDataContractUpdateTransitionState)]
30
30
  pub async fn validate_data_contract_update_transition_state(
31
31
  state_repository: ExternalStateRepositoryLike,
32
- state_transition: DataContractUpdateTransitionWasm,
32
+ state_transition: &DataContractUpdateTransitionWasm,
33
+ execution_context: &StateTransitionExecutionContextWasm,
33
34
  ) -> Result<ValidationResultWasm, JsValue> {
34
35
  let wrapped_state_repository = ExternalStateRepositoryLikeWrapper::new(state_repository);
35
36
  let result = dpp_validate_data_contract_update_transition_state(
36
37
  &wrapped_state_repository,
37
- &state_transition.into(),
38
+ &state_transition.to_owned().into(),
39
+ &execution_context.to_owned().into(),
38
40
  )
39
41
  .await
40
42
  .with_js_error()?;
@@ -71,7 +73,7 @@ pub async fn validate_data_contract_update_transition_basic(
71
73
  serde_wasm_bindgen::from_value(raw_parameters)?;
72
74
 
73
75
  let mut value = platform_value::to_value(&parameters)?;
74
- let mut validation_result = SimpleValidationResult::default();
76
+ let mut validation_result = SimpleConsensusValidationResult::default();
75
77
  if let Some(err) = DataContractUpdateTransition::clean_value(&mut value).err() {
76
78
  validation_result.add_error(ValueError::new(err));
77
79
  return Ok(validation_result.map(|_| JsValue::undefined()).into());
@@ -1,25 +1,25 @@
1
- use crate::errors::protocol_error::from_protocol_error;
2
- use core::iter::FromIterator;
3
- use dpp::encoding::decode_protocol_entity_factory::DecodeProtocolEntity;
4
- use dpp::ProtocolError;
5
1
  use js_sys::Array;
6
- use serde::Serialize;
2
+
7
3
  use wasm_bindgen::prelude::wasm_bindgen;
8
4
  use wasm_bindgen::JsValue;
9
5
 
10
6
  #[wasm_bindgen(js_name=decodeProtocolEntity)]
11
- pub fn decode_protocol_entity(buffer: Vec<u8>) -> Result<Array, JsValue> {
12
- let (protocol_version, value) =
13
- DecodeProtocolEntity::decode_protocol_entity(buffer).map_err(from_protocol_error)?;
14
-
15
- let serializer = serde_wasm_bindgen::Serializer::json_compatible();
16
- let js_value = value
17
- .try_to_validating_json()
18
- .map_err(|e| from_protocol_error(ProtocolError::ValueError(e)))?
19
- .serialize(&serializer)
20
- .map_err(|e| from_protocol_error(ProtocolError::EncodingError(e.to_string())))?;
21
- Ok(Array::from_iter(vec![
22
- JsValue::from(protocol_version),
23
- js_value,
24
- ]))
7
+ pub fn decode_protocol_entity(_buffer: Vec<u8>) -> Result<Array, JsValue> {
8
+ // TODO(v0.24-backport): revisit.
9
+ // This code was not used anywhere but js-drive and wallet-lib.
10
+ // In wallet-lib it is replaceable.
11
+ todo!()
12
+ // let (protocol_version, value) = DecodeProtocolEntity::decode_protocol_entity_to_value(buffer)
13
+ // .map_err(from_protocol_error)?;
14
+ //
15
+ // let serializer = serde_wasm_bindgen::Serializer::json_compatible();
16
+ // let js_value = value
17
+ // .try_to_validating_json()
18
+ // .map_err(|e| from_protocol_error(ProtocolError::ValueError(e)))?
19
+ // .serialize(&serializer)
20
+ // .map_err(|e| from_protocol_error(ProtocolError::EncodingError(e.to_string())))?;
21
+ // Ok(Array::from_iter(vec![
22
+ // JsValue::from(protocol_version),
23
+ // js_value,
24
+ // ]))
25
25
  }
@@ -198,6 +198,9 @@ impl ExtendedDocumentWasm {
198
198
  Value::Bytes(bytes) => {
199
199
  return Buffer::from_bytes(bytes).into();
200
200
  }
201
+ Value::Bytes20(bytes) => {
202
+ return Buffer::from_bytes(bytes.as_slice()).into();
203
+ }
201
204
  Value::Bytes32(bytes) => {
202
205
  return Buffer::from_bytes(bytes.as_slice()).into();
203
206
  }
@@ -322,7 +325,7 @@ impl ExtendedDocumentWasm {
322
325
 
323
326
  #[wasm_bindgen(js_name=toBuffer)]
324
327
  pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
325
- let bytes = self.0.to_buffer().with_js_error()?;
328
+ let bytes = self.0.to_cbor_buffer().with_js_error()?;
326
329
 
327
330
  Ok(Buffer::from_bytes(&bytes))
328
331
  }
@@ -3,7 +3,7 @@ use dpp::{
3
3
  document::{self, fetch_and_validate_data_contract::fetch_and_validate_data_contract},
4
4
  prelude::DataContract,
5
5
  state_transition::state_transition_execution_context::StateTransitionExecutionContext,
6
- validation::ValidationResult,
6
+ validation::ConsensusValidationResult,
7
7
  ProtocolError,
8
8
  };
9
9
  use wasm_bindgen::prelude::*;
@@ -72,7 +72,7 @@ async fn fetch_and_validate_data_contract_inner(
72
72
  fetch_and_validate_data_contract(state_repository, &document_value, &ctx)
73
73
  .await
74
74
  .with_js_error()?;
75
- let result_with_js_value: ValidationResult<JsValue> = validation_result
75
+ let result_with_js_value: ConsensusValidationResult<JsValue> = validation_result
76
76
  .map(|dc| <DataContractWasm as std::convert::From<DataContract>>::from(dc).into());
77
77
 
78
78
  Ok(result_with_js_value.into())
@@ -1,4 +1,3 @@
1
- use dpp::dashcore::anyhow::Context;
2
1
  use dpp::prelude::{DataContract, Identifier};
3
2
  use dpp::util::json_schema::JsonSchemaExt;
4
3
 
@@ -11,7 +10,7 @@ use crate::buffer::Buffer;
11
10
 
12
11
  use crate::identifier::IdentifierWrapper;
13
12
  use crate::lodash::lodash_set;
14
- use crate::utils::{try_to_u64, WithJsError};
13
+ use crate::utils::WithJsError;
15
14
  use crate::utils::{with_serde_to_json_value, ToSerdeJSONExt};
16
15
  use crate::with_js_error;
17
16
  use crate::DataContractWasm;
@@ -27,7 +26,7 @@ pub mod state_transition;
27
26
  mod validator;
28
27
 
29
28
  pub use document_batch_transition::DocumentsBatchTransitionWasm;
30
- use dpp::data_contract::DriveContractExt;
29
+
31
30
  use dpp::document::{Document, EXTENDED_DOCUMENT_IDENTIFIER_FIELDS, IDENTIFIER_FIELDS};
32
31
 
33
32
  pub use extended_document::ExtendedDocumentWasm;
@@ -169,6 +168,9 @@ impl DocumentWasm {
169
168
  Value::Bytes(bytes) => {
170
169
  return Ok(Buffer::from_bytes(bytes.as_slice()).into());
171
170
  }
171
+ Value::Bytes20(bytes) => {
172
+ return Ok(Buffer::from_bytes(bytes.as_slice()).into());
173
+ }
172
174
  Value::Bytes32(bytes) => {
173
175
  return Ok(Buffer::from_bytes(bytes.as_slice()).into());
174
176
  }
@@ -4,19 +4,22 @@ use wasm_bindgen::prelude::*;
4
4
  use crate::{
5
5
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
6
6
  utils::WithJsError,
7
- DocumentsBatchTransitionWasm,
7
+ DocumentsBatchTransitionWasm, StateTransitionExecutionContextWasm,
8
8
  };
9
9
 
10
10
  #[wasm_bindgen(js_name=applyDocumentsBatchTransition)]
11
11
  pub async fn apply_documents_batch_transition_wasm(
12
12
  state_repository: ExternalStateRepositoryLike,
13
13
  transition: &DocumentsBatchTransitionWasm,
14
+ execution_context: &StateTransitionExecutionContextWasm,
14
15
  ) -> Result<(), JsValue> {
15
16
  let wrapped_state_repository = ExternalStateRepositoryLikeWrapper::new(state_repository);
16
17
 
17
- let result = apply_documents_batch_transition(&wrapped_state_repository, &transition.0)
18
- .await
19
- .with_js_error();
20
-
21
- result
18
+ apply_documents_batch_transition(
19
+ &wrapped_state_repository,
20
+ &transition.0,
21
+ &execution_context.to_owned().into(),
22
+ )
23
+ .await
24
+ .with_js_error()
22
25
  }
@@ -2,7 +2,7 @@ use std::convert;
2
2
  use std::convert::TryInto;
3
3
 
4
4
  use dpp::document::document_transition::document_base_transition::JsonValue;
5
- use dpp::identity::TimestampMillis;
5
+
6
6
  use dpp::platform_value::btreemap_extensions::{
7
7
  BTreeValueMapHelper, BTreeValueMapPathHelper, BTreeValueMapReplacementPathHelper,
8
8
  };
@@ -2,7 +2,7 @@ use std::convert;
2
2
  use std::convert::TryInto;
3
3
 
4
4
  use dpp::document::document_transition::document_base_transition::JsonValue;
5
- use dpp::identity::TimestampMillis;
5
+
6
6
  use dpp::platform_value::btreemap_extensions::{
7
7
  BTreeValueMapHelper, BTreeValueMapPathHelper, BTreeValueMapReplacementPathHelper,
8
8
  };
@@ -2,7 +2,6 @@ mod document_create_transition;
2
2
  mod document_delete_transition;
3
3
  mod document_replace_transition;
4
4
 
5
- use anyhow::Context;
6
5
  pub use document_create_transition::*;
7
6
  pub use document_delete_transition::*;
8
7
  pub use document_replace_transition::*;
@@ -26,7 +25,7 @@ use crate::{
26
25
  buffer::Buffer,
27
26
  identifier::{identifier_from_js_value, IdentifierWrapper},
28
27
  lodash::lodash_set,
29
- utils::{try_to_u64, Inner, ToSerdeJSONExt, WithJsError},
28
+ utils::{Inner, ToSerdeJSONExt, WithJsError},
30
29
  with_js_error, BinaryType, ConversionOptions, DataContractWasm,
31
30
  };
32
31
 
@@ -28,7 +28,7 @@ use crate::{
28
28
  identifier::IdentifierWrapper,
29
29
  lodash::lodash_set,
30
30
  utils::{Inner, IntoWasm, ToSerdeJSONExt, WithJsError},
31
- IdentityPublicKeyWasm, StateTransitionExecutionContextWasm,
31
+ IdentityPublicKeyWasm,
32
32
  };
33
33
  pub mod apply_document_batch_transition;
34
34
  pub mod document_transition;
@@ -79,9 +79,11 @@ impl DocumentsBatchTransitionWasm {
79
79
  .map_err(ProtocolError::ValueError)
80
80
  .with_js_error()?;
81
81
 
82
- let documents_batch_transition =
83
- DocumentsBatchTransition::from_raw_object(batch_transition_value, data_contracts)
84
- .with_js_error()?;
82
+ let documents_batch_transition = DocumentsBatchTransition::from_raw_object_with_contracts(
83
+ batch_transition_value,
84
+ data_contracts,
85
+ )
86
+ .with_js_error()?;
85
87
 
86
88
  Ok(documents_batch_transition.into())
87
89
  }
@@ -327,8 +329,12 @@ impl DocumentsBatchTransitionWasm {
327
329
  }
328
330
 
329
331
  #[wasm_bindgen(js_name=getKeySecurityLevelRequirement)]
330
- pub fn get_security_level_requirement(&self) -> u8 {
331
- self.0.get_security_level_requirement() as u8
332
+ pub fn get_security_level_requirement(&self) -> js_sys::Array {
333
+ let array = js_sys::Array::new();
334
+ for security_level in self.0.get_security_level_requirement() {
335
+ array.push(&JsValue::from(security_level as u32));
336
+ }
337
+ array
332
338
  }
333
339
 
334
340
  // AbstractStateTransition methods
@@ -362,16 +368,6 @@ impl DocumentsBatchTransitionWasm {
362
368
  self.0.is_identity_state_transition()
363
369
  }
364
370
 
365
- #[wasm_bindgen(js_name=setExecutionContext)]
366
- pub fn set_execution_context(&mut self, context: &StateTransitionExecutionContextWasm) {
367
- self.0.set_execution_context(context.into())
368
- }
369
-
370
- #[wasm_bindgen(js_name=getExecutionContext)]
371
- pub fn get_execution_context(&mut self) -> StateTransitionExecutionContextWasm {
372
- self.0.get_execution_context().clone().into()
373
- }
374
-
375
371
  #[wasm_bindgen(js_name=toBuffer)]
376
372
  pub fn to_buffer(&self, options: &JsValue) -> Result<Buffer, JsValue> {
377
373
  let skip_signature = if options.is_object() {
@@ -380,7 +376,7 @@ impl DocumentsBatchTransitionWasm {
380
376
  } else {
381
377
  false
382
378
  };
383
- let bytes = self.0.to_buffer(skip_signature).with_js_error()?;
379
+ let bytes = self.0.to_cbor_buffer(skip_signature).with_js_error()?;
384
380
 
385
381
  Ok(Buffer::from_bytes(&bytes))
386
382
  }
@@ -1,7 +1,7 @@
1
1
  use dpp::consensus::basic::value_error::ValueError;
2
2
  use dpp::document::validation::basic::validate_documents_batch_transition_basic;
3
3
  use dpp::document::DocumentsBatchTransition;
4
- use dpp::validation::SimpleValidationResult;
4
+ use dpp::validation::SimpleConsensusValidationResult;
5
5
  use std::sync::Arc;
6
6
  use wasm_bindgen::prelude::*;
7
7
 
@@ -18,12 +18,12 @@ pub async fn validate_documents_batch_transition_basic_wasm(
18
18
  protocol_version_validator: ProtocolVersionValidatorWasm,
19
19
  state_repository: ExternalStateRepositoryLike,
20
20
  js_raw_state_transition: JsValue,
21
- execution_context: StateTransitionExecutionContextWasm,
21
+ execution_context: &StateTransitionExecutionContextWasm,
22
22
  ) -> Result<ValidationResultWasm, JsValue> {
23
23
  let wrapped_state_repository = ExternalStateRepositoryLikeWrapper::new(state_repository);
24
24
  let mut value = js_raw_state_transition.with_serde_to_platform_value()?;
25
25
 
26
- let mut validation_result = SimpleValidationResult::default();
26
+ let mut validation_result = SimpleConsensusValidationResult::default();
27
27
  if let Some(err) = DocumentsBatchTransition::clean_value(&mut value).err() {
28
28
  validation_result.add_error(ValueError::new(err));
29
29
  return Ok(validation_result.map(|_| JsValue::undefined()).into());
@@ -34,7 +34,7 @@ pub async fn validate_documents_batch_transition_basic_wasm(
34
34
  &protocol_version_validator.into(),
35
35
  &value,
36
36
  Arc::new(wrapped_state_repository),
37
- &execution_context.into(),
37
+ &execution_context.to_owned().into(),
38
38
  )
39
39
  .await
40
40
  .with_js_error()?,
@@ -5,13 +5,14 @@ use crate::{
5
5
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
6
6
  utils::WithJsError,
7
7
  validation::ValidationResultWasm,
8
- DocumentsBatchTransitionWasm,
8
+ DocumentsBatchTransitionWasm, StateTransitionExecutionContextWasm,
9
9
  };
10
10
 
11
11
  #[wasm_bindgen(js_name = "validateDocumentsBatchTransitionState")]
12
12
  pub async fn validate_documents_batch_transition_state_wasm(
13
13
  state_repository: ExternalStateRepositoryLike,
14
14
  state_transition: &DocumentsBatchTransitionWasm,
15
+ execution_context: &StateTransitionExecutionContextWasm,
15
16
  ) -> Result<ValidationResultWasm, JsValue> {
16
17
  let wrapped_state_repository = ExternalStateRepositoryLikeWrapper::new(state_repository);
17
18
 
@@ -19,6 +20,7 @@ pub async fn validate_documents_batch_transition_state_wasm(
19
20
  validate_documents_batch_transition_state::validate_document_batch_transition_state(
20
21
  &wrapped_state_repository,
21
22
  &state_transition.0,
23
+ &execution_context.to_owned().into(),
22
24
  )
23
25
  .await
24
26
  .with_js_error()?;
@@ -41,7 +41,7 @@ impl DataContractHaveNewUniqueIndexErrorWasm {
41
41
  pub fn serialize(&self) -> Result<Buffer, JsError> {
42
42
  let bytes = ConsensusError::from(self.inner.clone())
43
43
  .serialize()
44
- .map_err(|e| JsError::from(e))?;
44
+ .map_err(JsError::from)?;
45
45
 
46
46
  Ok(Buffer::from_bytes(bytes.as_slice()))
47
47
  }
@@ -21,12 +21,12 @@ impl From<&DataContractImmutablePropertiesUpdateError>
21
21
  impl DataContractImmutablePropertiesUpdateErrorWasm {
22
22
  #[wasm_bindgen(js_name=getOperation)]
23
23
  pub fn get_operation(&self) -> String {
24
- self.inner.operation().to_string()
24
+ self.inner.operation()
25
25
  }
26
26
 
27
27
  #[wasm_bindgen(js_name=getFieldPath)]
28
28
  pub fn get_field_path(&self) -> String {
29
- self.inner.field_path().to_string()
29
+ self.inner.field_path()
30
30
  }
31
31
 
32
32
  #[wasm_bindgen(js_name=getCode)]
@@ -43,7 +43,7 @@ impl DataContractImmutablePropertiesUpdateErrorWasm {
43
43
  pub fn serialize(&self) -> Result<Buffer, JsError> {
44
44
  let bytes = ConsensusError::from(self.inner.clone())
45
45
  .serialize()
46
- .map_err(|e| JsError::from(e))?;
46
+ .map_err(JsError::from)?;
47
47
 
48
48
  Ok(Buffer::from_bytes(bytes.as_slice()))
49
49
  }
@@ -43,7 +43,7 @@ impl DataContractInvalidIndexDefinitionUpdateErrorWasm {
43
43
  pub fn serialize(&self) -> Result<Buffer, JsError> {
44
44
  let bytes = ConsensusError::from(self.inner.clone())
45
45
  .serialize()
46
- .map_err(|e| JsError::from(e))?;
46
+ .map_err(JsError::from)?;
47
47
 
48
48
  Ok(Buffer::from_bytes(bytes.as_slice()))
49
49
  }
@@ -41,7 +41,7 @@ impl DataContractMaxDepthExceedErrorWasm {
41
41
  pub fn serialize(&self) -> Result<Buffer, JsError> {
42
42
  let bytes = ConsensusError::from(self.inner.clone())
43
43
  .serialize()
44
- .map_err(|e| JsError::from(e))?;
44
+ .map_err(JsError::from)?;
45
45
 
46
46
  Ok(Buffer::from_bytes(bytes.as_slice()))
47
47
  }
@@ -41,7 +41,7 @@ impl DataContractUniqueIndicesChangedErrorWasm {
41
41
  pub fn serialize(&self) -> Result<Buffer, JsError> {
42
42
  let bytes = ConsensusError::from(self.inner.clone())
43
43
  .serialize()
44
- .map_err(|e| JsError::from(e))?;
44
+ .map_err(JsError::from)?;
45
45
 
46
46
  Ok(Buffer::from_bytes(bytes.as_slice()))
47
47
  }
@@ -19,12 +19,12 @@ impl From<&DuplicateIndexNameError> for DuplicateIndexNameErrorWasm {
19
19
  impl DuplicateIndexNameErrorWasm {
20
20
  #[wasm_bindgen(js_name=getDocumentType)]
21
21
  pub fn get_document_type(&self) -> String {
22
- self.inner.document_type().to_string()
22
+ self.inner.document_type()
23
23
  }
24
24
 
25
25
  #[wasm_bindgen(js_name=getDuplicateIndexName)]
26
26
  pub fn get_duplicate_index_name(&self) -> String {
27
- self.inner.duplicate_index_name().to_string()
27
+ self.inner.duplicate_index_name()
28
28
  }
29
29
 
30
30
  #[wasm_bindgen(js_name=getCode)]
@@ -41,7 +41,7 @@ impl DuplicateIndexNameErrorWasm {
41
41
  pub fn serialize(&self) -> Result<Buffer, JsError> {
42
42
  let bytes = ConsensusError::from(self.inner.clone())
43
43
  .serialize()
44
- .map_err(|e| JsError::from(e))?;
44
+ .map_err(JsError::from)?;
45
45
 
46
46
  Ok(Buffer::from_bytes(bytes.as_slice()))
47
47
  }
@@ -24,12 +24,12 @@ impl IncompatibleDataContractSchemaErrorWasm {
24
24
 
25
25
  #[wasm_bindgen(js_name=getOperation)]
26
26
  pub fn get_operation(&self) -> String {
27
- self.inner.operation().to_string()
27
+ self.inner.operation()
28
28
  }
29
29
 
30
30
  #[wasm_bindgen(js_name=getFieldPath)]
31
31
  pub fn get_field_path(&self) -> String {
32
- self.inner.field_path().to_string()
32
+ self.inner.field_path()
33
33
  }
34
34
 
35
35
  #[wasm_bindgen(js_name=getCode)]
@@ -46,7 +46,7 @@ impl IncompatibleDataContractSchemaErrorWasm {
46
46
  pub fn serialize(&self) -> Result<Buffer, JsError> {
47
47
  let bytes = ConsensusError::from(self.inner.clone())
48
48
  .serialize()
49
- .map_err(|e| JsError::from(e))?;
49
+ .map_err(JsError::from)?;
50
50
 
51
51
  Ok(Buffer::from_bytes(bytes.as_slice()))
52
52
  }