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

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
@@ -46,7 +46,7 @@ impl DuplicateUniqueIndexErrorWasm {
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
  }
@@ -42,7 +42,7 @@ impl InvalidDocumentRevisionErrorWasm {
42
42
  pub fn serialize(&self) -> Result<Buffer, JsError> {
43
43
  let bytes = ConsensusError::from(self.inner.clone())
44
44
  .serialize()
45
- .map_err(|e| JsError::from(e))?;
45
+ .map_err(JsError::from)?;
46
46
 
47
47
  Ok(Buffer::from_bytes(bytes.as_slice()))
48
48
  }
@@ -43,7 +43,7 @@ impl DuplicatedIdentityPublicKeyIdStateErrorWasm {
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
  }
@@ -40,7 +40,7 @@ impl DuplicatedIdentityPublicKeyStateErrorWasm {
40
40
  pub fn serialize(&self) -> Result<Buffer, JsError> {
41
41
  let bytes = ConsensusError::from(self.inner.clone())
42
42
  .serialize()
43
- .map_err(|e| JsError::from(e))?;
43
+ .map_err(JsError::from)?;
44
44
 
45
45
  Ok(Buffer::from_bytes(bytes.as_slice()))
46
46
  }
@@ -36,7 +36,7 @@ impl IdentityAlreadyExistsErrorWasm {
36
36
  pub fn serialize(&self) -> Result<Buffer, JsError> {
37
37
  let bytes = ConsensusError::from(self.inner.clone())
38
38
  .serialize()
39
- .map_err(|e| JsError::from(e))?;
39
+ .map_err(JsError::from)?;
40
40
 
41
41
  Ok(Buffer::from_bytes(bytes.as_slice()))
42
42
  }
@@ -51,7 +51,7 @@ impl IdentityPublicKeyDisabledAtWindowViolationErrorWasm {
51
51
  pub fn serialize(&self) -> Result<Buffer, JsError> {
52
52
  let bytes = ConsensusError::from(self.inner.clone())
53
53
  .serialize()
54
- .map_err(|e| JsError::from(e))?;
54
+ .map_err(JsError::from)?;
55
55
 
56
56
  Ok(Buffer::from_bytes(bytes.as_slice()))
57
57
  }
@@ -37,7 +37,7 @@ impl IdentityPublicKeyIsDisabledErrorWasm {
37
37
  pub fn serialize(&self) -> Result<Buffer, JsError> {
38
38
  let bytes = ConsensusError::from(self.inner.clone())
39
39
  .serialize()
40
- .map_err(|e| JsError::from(e))?;
40
+ .map_err(JsError::from)?;
41
41
 
42
42
  Ok(Buffer::from_bytes(bytes.as_slice()))
43
43
  }
@@ -42,7 +42,7 @@ impl IdentityPublicKeyIsReadOnlyErrorWasm {
42
42
  pub fn serialize(&self) -> Result<Buffer, JsError> {
43
43
  let bytes = ConsensusError::from(self.inner.clone())
44
44
  .serialize()
45
- .map_err(|e| JsError::from(e))?;
45
+ .map_err(JsError::from)?;
46
46
 
47
47
  Ok(Buffer::from_bytes(bytes.as_slice()))
48
48
  }
@@ -37,7 +37,7 @@ impl InvalidIdentityPublicKeyIdErrorWasm {
37
37
  pub fn serialize(&self) -> Result<Buffer, JsError> {
38
38
  let bytes = ConsensusError::from(self.inner.clone())
39
39
  .serialize()
40
- .map_err(|e| JsError::from(e))?;
40
+ .map_err(JsError::from)?;
41
41
 
42
42
  Ok(Buffer::from_bytes(bytes.as_slice()))
43
43
  }
@@ -43,7 +43,7 @@ impl InvalidIdentityRevisionErrorWasm {
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
  }
@@ -37,7 +37,7 @@ impl MaxIdentityPublicKeyLimitReachedErrorWasm {
37
37
  pub fn serialize(&self) -> Result<Buffer, JsError> {
38
38
  let bytes = ConsensusError::from(self.inner.clone())
39
39
  .serialize()
40
- .map_err(|e| JsError::from(e))?;
40
+ .map_err(JsError::from)?;
41
41
 
42
42
  Ok(Buffer::from_bytes(bytes.as_slice()))
43
43
  }
@@ -0,0 +1,26 @@
1
+ use dpp::consensus::state::identity::missing_identity_public_key_ids_error::MissingIdentityPublicKeyIdsError;
2
+ use wasm_bindgen::prelude::*;
3
+
4
+ #[wasm_bindgen(js_name=MissingIdentityPublicKeyIdsError)]
5
+ pub struct MissingIdentityPublicKeyIdsErrorWasm {
6
+ inner: MissingIdentityPublicKeyIdsError,
7
+ }
8
+
9
+ impl From<&MissingIdentityPublicKeyIdsError> for MissingIdentityPublicKeyIdsErrorWasm {
10
+ fn from(e: &MissingIdentityPublicKeyIdsError) -> Self {
11
+ Self { inner: e.clone() }
12
+ }
13
+ }
14
+
15
+ #[wasm_bindgen(js_class=MissingIdentityPublicKeyIdsError)]
16
+ impl MissingIdentityPublicKeyIdsErrorWasm {
17
+ #[wasm_bindgen(js_name=getDuplicatedIds)]
18
+ pub fn duplicated_ids(&self) -> js_sys::Array {
19
+ // TODO: key ids probably should be u32
20
+ self.inner
21
+ .ids()
22
+ .iter()
23
+ .map(|id| JsValue::from(*id))
24
+ .collect()
25
+ }
26
+ }
@@ -7,6 +7,7 @@ mod identity_public_key_is_read_only_error;
7
7
  mod invalid_identity_public_key_id_error;
8
8
  mod invalid_identity_revision_error;
9
9
  mod max_identity_public_key_limit_reached_error;
10
+ mod missing_identity_public_key_ids_error;
10
11
 
11
12
  pub use duplicated_identity_public_key_id_state_error::*;
12
13
  pub use duplicated_identity_public_key_state_error::*;
@@ -17,3 +18,4 @@ pub use identity_public_key_is_read_only_error::*;
17
18
  pub use invalid_identity_public_key_id_error::*;
18
19
  pub use invalid_identity_revision_error::*;
19
20
  pub use max_identity_public_key_limit_reached_error::*;
21
+ pub use missing_identity_public_key_ids_error::*;
@@ -37,7 +37,7 @@ impl ValueErrorWasm {
37
37
  pub fn serialize(&self) -> Result<Buffer, JsError> {
38
38
  let bytes = ConsensusError::from(self.inner.clone())
39
39
  .serialize()
40
- .map_err(|e| JsError::from(e))?;
40
+ .map_err(JsError::from)?;
41
41
 
42
42
  Ok(Buffer::from_bytes(bytes.as_slice()))
43
43
  }
@@ -1,4 +1,3 @@
1
- use dpp::consensus::basic::value_error::ValueError;
2
1
  use dpp::DashPlatformProtocolInitError;
3
2
  use wasm_bindgen::JsValue;
4
3
 
@@ -1,10 +1,6 @@
1
- use crate::buffer::Buffer;
2
1
  use dpp::dashcore::secp256k1::rand::thread_rng;
3
- use dpp::dashcore::secp256k1::Secp256k1;
4
- use dpp::dashcore::{
5
- secp256k1::SecretKey, InstantLock, Network, OutPoint, PrivateKey, Script, Transaction, TxIn,
6
- TxOut, Txid,
7
- };
2
+
3
+ use dpp::dashcore::{secp256k1::SecretKey, Network, PrivateKey};
8
4
  use wasm_bindgen::prelude::wasm_bindgen;
9
5
  use wasm_bindgen::JsValue;
10
6
 
@@ -3,7 +3,7 @@ use crate::identity::identity_public_key_transitions::IdentityPublicKeyWithWitne
3
3
  use crate::utils::{generic_of_js_val, to_vec_of_platform_values};
4
4
  use crate::{create_asset_lock_proof_from_wasm_instance, IdentityPublicKeyWasm};
5
5
  use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
6
- use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitness;
6
+ use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyInCreationWithWitness;
7
7
  use dpp::identity::{IdentityPublicKey, KeyID};
8
8
  use std::collections::BTreeMap;
9
9
  use wasm_bindgen::__rt::Ref;
@@ -26,7 +26,7 @@ pub fn parse_create_args(
26
26
  Ok((asset_lock_proof, public_keys))
27
27
  }
28
28
 
29
- type AddPublicKeys = Option<Vec<IdentityPublicKeyWithWitness>>;
29
+ type AddPublicKeys = Option<Vec<IdentityPublicKeyInCreationWithWitness>>;
30
30
  type DisablePublicKeys = Option<Vec<KeyID>>;
31
31
 
32
32
  pub fn parse_create_identity_update_transition_keys(
@@ -44,7 +44,7 @@ pub fn parse_create_identity_update_transition_keys(
44
44
  .to_js_value()
45
45
  })?;
46
46
 
47
- let keys: Vec<IdentityPublicKeyWithWitness> = add_public_keys_array
47
+ let keys: Vec<IdentityPublicKeyInCreationWithWitness> = add_public_keys_array
48
48
  .iter()
49
49
  .map(|key| {
50
50
  let public_key: Ref<IdentityPublicKeyWithWitnessWasm> =
@@ -55,7 +55,7 @@ pub fn parse_create_identity_update_transition_keys(
55
55
 
56
56
  Ok(public_key.clone().into())
57
57
  })
58
- .collect::<Result<Vec<IdentityPublicKeyWithWitness>, JsValue>>()?;
58
+ .collect::<Result<Vec<IdentityPublicKeyInCreationWithWitness>, JsValue>>()?;
59
59
 
60
60
  add_public_keys = Some(keys)
61
61
  }
@@ -8,6 +8,7 @@ pub enum KeyTypeWasm {
8
8
  BLS12_381 = 1,
9
9
  ECDSA_HASH160 = 2,
10
10
  BIP13_SCRIPT_HASH = 3,
11
+ EDDSA_25519_HASH160 = 4,
11
12
  }
12
13
 
13
14
  impl From<KeyType> for KeyTypeWasm {
@@ -17,6 +18,7 @@ impl From<KeyType> for KeyTypeWasm {
17
18
  KeyType::BLS12_381 => Self::BLS12_381,
18
19
  KeyType::ECDSA_HASH160 => Self::ECDSA_HASH160,
19
20
  KeyType::BIP13_SCRIPT_HASH => Self::BIP13_SCRIPT_HASH,
21
+ KeyType::EDDSA_25519_HASH160 => Self::EDDSA_25519_HASH160,
20
22
  }
21
23
  }
22
24
  }
@@ -9,7 +9,12 @@ pub enum PurposeWasm {
9
9
  ENCRYPTION = 1,
10
10
  /// this key cannot be used for signing documents
11
11
  DECRYPTION = 2,
12
+ /// this key cannot be used for signing documents
12
13
  WITHDRAW = 3,
14
+ /// this key cannot be used for signing documents
15
+ SYSTEM = 4,
16
+ /// this key cannot be used for signing documents
17
+ VOTING = 5,
13
18
  }
14
19
 
15
20
  impl From<Purpose> for PurposeWasm {
@@ -19,6 +24,8 @@ impl From<Purpose> for PurposeWasm {
19
24
  Purpose::ENCRYPTION => PurposeWasm::ENCRYPTION,
20
25
  Purpose::DECRYPTION => PurposeWasm::DECRYPTION,
21
26
  Purpose::WITHDRAW => PurposeWasm::WITHDRAW,
27
+ Purpose::SYSTEM => PurposeWasm::SYSTEM,
28
+ Purpose::VOTING => PurposeWasm::VOTING,
22
29
  }
23
30
  }
24
31
  }
@@ -213,7 +213,7 @@ impl IdentityWasm {
213
213
 
214
214
  #[wasm_bindgen(js_name=toBuffer)]
215
215
  pub fn to_buffer(&self) -> Vec<u8> {
216
- self.0.to_buffer().unwrap()
216
+ self.0.to_cbor_buffer().unwrap()
217
217
  }
218
218
 
219
219
  #[wasm_bindgen]
@@ -4,13 +4,14 @@ use wasm_bindgen::prelude::*;
4
4
 
5
5
  use crate::{
6
6
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
7
- IdentityCreateTransitionWasm,
7
+ IdentityCreateTransitionWasm, StateTransitionExecutionContextWasm,
8
8
  };
9
9
 
10
10
  #[wasm_bindgen(js_name=applyIdentityCreateTransition)]
11
11
  pub async fn apply_identity_create_transition_wasm(
12
12
  state_repository: ExternalStateRepositoryLike,
13
13
  state_transition: &IdentityCreateTransitionWasm,
14
+ execution_context: &StateTransitionExecutionContextWasm,
14
15
  ) -> Result<(), JsValue> {
15
16
  let wrapped_state_repository =
16
17
  Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
@@ -18,7 +19,10 @@ pub async fn apply_identity_create_transition_wasm(
18
19
  let instance = ApplyIdentityCreateTransition::new(wrapped_state_repository);
19
20
 
20
21
  instance
21
- .apply_identity_create_transition(&state_transition.to_owned().into())
22
+ .apply_identity_create_transition(
23
+ &state_transition.to_owned().into(),
24
+ &execution_context.to_owned().into(),
25
+ )
22
26
  .await
23
27
  .map_err(|e| JsValue::from_str(&e.to_string()))?;
24
28
 
@@ -14,7 +14,6 @@ use crate::{
14
14
  ChainAssetLockProofWasm, InstantAssetLockProofWasm,
15
15
  },
16
16
  identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitnessWasm,
17
- state_transition::StateTransitionExecutionContextWasm,
18
17
  with_js_error,
19
18
  };
20
19
 
@@ -29,7 +28,7 @@ use dpp::platform_value::{string_encoding, BinaryData};
29
28
  use dpp::{
30
29
  identity::state_transition::{
31
30
  asset_lock_proof::AssetLockProof, identity_create_transition::IdentityCreateTransition,
32
- identity_public_key_transitions::IdentityPublicKeyWithWitness,
31
+ identity_public_key_transitions::IdentityPublicKeyInCreationWithWitness,
33
32
  },
34
33
  state_transition::StateTransitionLike,
35
34
  };
@@ -56,8 +55,9 @@ impl IdentityCreateTransitionWasm {
56
55
  pub fn new(raw_parameters: JsValue) -> Result<IdentityCreateTransitionWasm, JsValue> {
57
56
  let mut raw_state_transition = raw_parameters.with_serde_to_platform_value()?;
58
57
  IdentityCreateTransition::clean_value(&mut raw_state_transition).with_js_error()?;
59
- let identity_create_transition = IdentityCreateTransition::new(raw_state_transition)
60
- .map_err(|e| RustConversionError::Error(e.to_string()).to_js_value())?;
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
61
 
62
62
  Ok(identity_create_transition.into())
63
63
  }
@@ -104,7 +104,7 @@ impl IdentityCreateTransitionWasm {
104
104
  )?;
105
105
  Ok(public_key.clone().into())
106
106
  })
107
- .collect::<Result<Vec<IdentityPublicKeyWithWitness>, JsValue>>()?;
107
+ .collect::<Result<Vec<IdentityPublicKeyInCreationWithWitness>, JsValue>>()?;
108
108
 
109
109
  self.0.set_public_keys(public_keys);
110
110
 
@@ -123,7 +123,7 @@ impl IdentityCreateTransitionWasm {
123
123
  )?;
124
124
  Ok(public_key.clone().into())
125
125
  })
126
- .collect::<Result<Vec<IdentityPublicKeyWithWitness>, JsValue>>()?;
126
+ .collect::<Result<Vec<IdentityPublicKeyInCreationWithWitness>, JsValue>>()?;
127
127
 
128
128
  self.0.add_public_keys(&mut public_keys);
129
129
 
@@ -135,7 +135,7 @@ impl IdentityCreateTransitionWasm {
135
135
  self.0
136
136
  .get_public_keys()
137
137
  .iter()
138
- .map(IdentityPublicKeyWithWitness::to_owned)
138
+ .map(IdentityPublicKeyInCreationWithWitness::to_owned)
139
139
  .map(IdentityPublicKeyWithWitnessWasm::from)
140
140
  .map(JsValue::from)
141
141
  .collect()
@@ -237,7 +237,7 @@ impl IdentityCreateTransitionWasm {
237
237
 
238
238
  let buffer = self
239
239
  .0
240
- .to_buffer(opts.skip_signature.unwrap_or(false))
240
+ .to_cbor_buffer(opts.skip_signature.unwrap_or(false))
241
241
  .map_err(from_dpp_err)?;
242
242
 
243
243
  Ok(Buffer::from_bytes(&buffer).into())
@@ -319,16 +319,6 @@ impl IdentityCreateTransitionWasm {
319
319
  self.0.is_identity_state_transition()
320
320
  }
321
321
 
322
- #[wasm_bindgen(js_name=setExecutionContext)]
323
- pub fn set_execution_context(&mut self, context: &StateTransitionExecutionContextWasm) {
324
- self.0.set_execution_context(context.into())
325
- }
326
-
327
- #[wasm_bindgen(js_name=getExecutionContext)]
328
- pub fn get_execution_context(&mut self) -> StateTransitionExecutionContextWasm {
329
- self.0.get_execution_context().into()
330
- }
331
-
332
322
  #[wasm_bindgen(js_name=signByPrivateKey)]
333
323
  pub fn sign_by_private_key(
334
324
  &mut self,
@@ -1,7 +1,7 @@
1
1
  use crate::errors::from_dpp_err;
2
2
  use crate::state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper};
3
3
  use crate::validation::ValidationResultWasm;
4
- use crate::IdentityCreateTransitionWasm;
4
+ use crate::{IdentityCreateTransitionWasm, StateTransitionExecutionContextWasm};
5
5
  use dpp::identity::state_transition::identity_create_transition::validation::state::validate_identity_create_transition_state;
6
6
  use wasm_bindgen::prelude::*;
7
7
  use wasm_bindgen::JsValue;
@@ -24,10 +24,12 @@ impl IdentityCreateTransitionStateValidator {
24
24
  pub async fn validate(
25
25
  &self,
26
26
  state_transition: &IdentityCreateTransitionWasm,
27
+ execution_context: &StateTransitionExecutionContextWasm,
27
28
  ) -> Result<ValidationResultWasm, JsValue> {
28
29
  let validation_result = validate_identity_create_transition_state(
29
30
  &self.state_repository,
30
31
  &state_transition.to_owned().into(),
32
+ &execution_context.to_owned().into(),
31
33
  )
32
34
  .await
33
35
  .map_err(from_dpp_err)?;
@@ -1,5 +1,5 @@
1
1
  use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
2
- use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitness;
2
+ use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyInCreationWithWitness;
3
3
  use dpp::{
4
4
  identifier::Identifier,
5
5
  identity::state_transition::identity_create_transition::IdentityCreateTransition,
@@ -20,7 +20,7 @@ pub struct ToObject {
20
20
  pub protocol_version: u32,
21
21
  pub identity_id: Identifier,
22
22
  pub asset_lock_proof: AssetLockProof,
23
- pub public_keys: Vec<IdentityPublicKeyWithWitness>,
23
+ pub public_keys: Vec<IdentityPublicKeyInCreationWithWitness>,
24
24
  pub signature: Option<Vec<u8>>,
25
25
  }
26
26
 
@@ -1,7 +1,7 @@
1
1
  //todo: move this file to transition
2
2
  use dpp::dashcore::anyhow;
3
3
  use dpp::document::document_transition::document_base_transition::JsonValue;
4
- use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitness;
4
+ use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyInCreationWithWitness;
5
5
  use dpp::platform_value::BinaryData;
6
6
  use dpp::Convertible;
7
7
  pub use serde::{Deserialize, Serialize};
@@ -20,7 +20,7 @@ struct ToObjectOptions {
20
20
 
21
21
  #[wasm_bindgen(js_name=IdentityPublicKeyWithWitness)]
22
22
  #[derive(Serialize, Deserialize, Debug, Clone)]
23
- pub struct IdentityPublicKeyWithWitnessWasm(IdentityPublicKeyWithWitness);
23
+ pub struct IdentityPublicKeyWithWitnessWasm(IdentityPublicKeyInCreationWithWitness);
24
24
 
25
25
  #[wasm_bindgen(js_class = IdentityPublicKeyWithWitness)]
26
26
  impl IdentityPublicKeyWithWitnessWasm {
@@ -29,7 +29,7 @@ impl IdentityPublicKeyWithWitnessWasm {
29
29
  let data_string = utils::stringify(&raw_public_key)?;
30
30
  let value: JsonValue = serde_json::from_str(&data_string).map_err(|e| e.to_string())?;
31
31
 
32
- let pk = IdentityPublicKeyWithWitness::from_json_object(value).with_js_error()?;
32
+ let pk = IdentityPublicKeyInCreationWithWitness::from_json_object(value).with_js_error()?;
33
33
 
34
34
  Ok(IdentityPublicKeyWithWitnessWasm(pk))
35
35
  }
@@ -116,7 +116,7 @@ impl IdentityPublicKeyWithWitnessWasm {
116
116
 
117
117
  #[wasm_bindgen(js_name=hash)]
118
118
  pub fn hash(&self) -> Result<Vec<u8>, JsValue> {
119
- self.0.hash().with_js_error()
119
+ self.0.hash_as_vec().with_js_error()
120
120
  }
121
121
 
122
122
  #[wasm_bindgen(js_name=isMaster)]
@@ -174,21 +174,21 @@ impl IdentityPublicKeyWithWitnessWasm {
174
174
  }
175
175
 
176
176
  impl IdentityPublicKeyWithWitnessWasm {
177
- pub fn into_inner(self) -> IdentityPublicKeyWithWitness {
177
+ pub fn into_inner(self) -> IdentityPublicKeyInCreationWithWitness {
178
178
  self.0
179
179
  }
180
180
 
181
- pub fn inner(&self) -> &IdentityPublicKeyWithWitness {
181
+ pub fn inner(&self) -> &IdentityPublicKeyInCreationWithWitness {
182
182
  &self.0
183
183
  }
184
184
 
185
- pub fn inner_mut(&mut self) -> &mut IdentityPublicKeyWithWitness {
185
+ pub fn inner_mut(&mut self) -> &mut IdentityPublicKeyInCreationWithWitness {
186
186
  &mut self.0
187
187
  }
188
188
  }
189
189
 
190
- impl From<IdentityPublicKeyWithWitness> for IdentityPublicKeyWithWitnessWasm {
191
- fn from(v: IdentityPublicKeyWithWitness) -> Self {
190
+ impl From<IdentityPublicKeyInCreationWithWitness> for IdentityPublicKeyWithWitnessWasm {
191
+ fn from(v: IdentityPublicKeyInCreationWithWitness) -> Self {
192
192
  IdentityPublicKeyWithWitnessWasm(v)
193
193
  }
194
194
  }
@@ -200,12 +200,12 @@ impl TryFrom<JsValue> for IdentityPublicKeyWithWitnessWasm {
200
200
  let str = String::from(js_sys::JSON::stringify(&value)?);
201
201
  let val = serde_json::from_str(&str).map_err(|e| from_dpp_err(e.into()))?;
202
202
  Ok(Self(
203
- IdentityPublicKeyWithWitness::from_raw_json_object(val).with_js_error()?,
203
+ IdentityPublicKeyInCreationWithWitness::from_raw_json_object(val).with_js_error()?,
204
204
  ))
205
205
  }
206
206
  }
207
207
 
208
- impl From<IdentityPublicKeyWithWitnessWasm> for IdentityPublicKeyWithWitness {
208
+ impl From<IdentityPublicKeyWithWitnessWasm> for IdentityPublicKeyInCreationWithWitness {
209
209
  fn from(pk: IdentityPublicKeyWithWitnessWasm) -> Self {
210
210
  pk.0
211
211
  }
@@ -5,13 +5,14 @@ use wasm_bindgen::prelude::*;
5
5
 
6
6
  use crate::{
7
7
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
8
- IdentityTopUpTransitionWasm,
8
+ IdentityTopUpTransitionWasm, StateTransitionExecutionContextWasm,
9
9
  };
10
10
 
11
11
  #[wasm_bindgen(js_name=applyIdentityTopUpTransition)]
12
12
  pub async fn apply_identity_topup_transition_wasm(
13
13
  state_repository: ExternalStateRepositoryLike,
14
14
  state_transition: &IdentityTopUpTransitionWasm,
15
+ execution_context: &StateTransitionExecutionContextWasm,
15
16
  ) -> Result<(), JsValue> {
16
17
  let wrapped_state_repository =
17
18
  Arc::new(ExternalStateRepositoryLikeWrapper::new(state_repository));
@@ -23,7 +24,10 @@ pub async fn apply_identity_topup_transition_wasm(
23
24
  ApplyIdentityTopUpTransition::new(wrapped_state_repository, Arc::new(tx_output_fetcher));
24
25
 
25
26
  instance
26
- .apply(&state_transition.to_owned().into())
27
+ .apply(
28
+ &state_transition.to_owned().into(),
29
+ &execution_context.to_owned().into(),
30
+ )
27
31
  .await
28
32
  .map_err(|e| JsValue::from_str(&e.to_string()))?;
29
33
 
@@ -14,7 +14,6 @@ use crate::{
14
14
  identity::state_transition::asset_lock_proof::{
15
15
  ChainAssetLockProofWasm, InstantAssetLockProofWasm,
16
16
  },
17
- state_transition::StateTransitionExecutionContextWasm,
18
17
  with_js_error,
19
18
  };
20
19
 
@@ -179,7 +178,7 @@ impl IdentityTopUpTransitionWasm {
179
178
 
180
179
  let buffer = self
181
180
  .0
182
- .to_buffer(opts.skip_signature.unwrap_or(false))
181
+ .to_cbor_buffer(opts.skip_signature.unwrap_or(false))
183
182
  .map_err(from_dpp_err)?;
184
183
 
185
184
  Ok(Buffer::from_bytes(&buffer).into())
@@ -262,16 +261,6 @@ impl IdentityTopUpTransitionWasm {
262
261
  self.0.is_identity_state_transition()
263
262
  }
264
263
 
265
- #[wasm_bindgen(js_name=setExecutionContext)]
266
- pub fn set_execution_context(&mut self, context: &StateTransitionExecutionContextWasm) {
267
- self.0.set_execution_context(context.into())
268
- }
269
-
270
- #[wasm_bindgen(js_name=getExecutionContext)]
271
- pub fn get_execution_context(&mut self) -> StateTransitionExecutionContextWasm {
272
- self.0.get_execution_context().into()
273
- }
274
-
275
264
  #[wasm_bindgen(js_name=signByPrivateKey)]
276
265
  pub fn sign_by_private_key(
277
266
  &mut self,
@@ -1,7 +1,7 @@
1
1
  use crate::errors::from_dpp_err;
2
2
  use crate::state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper};
3
3
  use crate::validation::ValidationResultWasm;
4
- use crate::IdentityTopUpTransitionWasm;
4
+ use crate::{IdentityTopUpTransitionWasm, StateTransitionExecutionContextWasm};
5
5
  use dpp::identity::state_transition::identity_topup_transition::validation::state::validate_identity_topup_transition_state;
6
6
  use wasm_bindgen::prelude::*;
7
7
  use wasm_bindgen::JsValue;
@@ -24,10 +24,12 @@ impl IdentityTopUpTransitionStateValidator {
24
24
  pub async fn validate(
25
25
  &self,
26
26
  state_transition: &IdentityTopUpTransitionWasm,
27
+ execution_context: &StateTransitionExecutionContextWasm,
27
28
  ) -> Result<ValidationResultWasm, JsValue> {
28
29
  let validation_result = validate_identity_topup_transition_state(
29
30
  &self.state_repository,
30
31
  &state_transition.to_owned().into(),
32
+ &execution_context.to_owned().into(),
31
33
  )
32
34
  .await
33
35
  .map_err(|e| from_dpp_err(e.into()))?;
@@ -3,19 +3,21 @@ use wasm_bindgen::prelude::*;
3
3
 
4
4
  use crate::{
5
5
  state_repository::{ExternalStateRepositoryLike, ExternalStateRepositoryLikeWrapper},
6
- IdentityUpdateTransitionWasm,
6
+ IdentityUpdateTransitionWasm, StateTransitionExecutionContextWasm,
7
7
  };
8
8
 
9
9
  #[wasm_bindgen(js_name=applyIdentityUpdateTransition)]
10
10
  pub async fn apply_identity_update_transition_wasm(
11
11
  state_repository: ExternalStateRepositoryLike,
12
12
  state_transition: &IdentityUpdateTransitionWasm,
13
+ execution_context: &StateTransitionExecutionContextWasm,
13
14
  ) -> Result<(), JsValue> {
14
15
  let wrapped_state_repository = ExternalStateRepositoryLikeWrapper::new(state_repository);
15
16
 
16
17
  apply_identity_update_transition(
17
18
  &wrapped_state_repository,
18
19
  &state_transition.to_owned().into(),
20
+ &execution_context.to_owned().into(),
19
21
  )
20
22
  .await
21
23
  .map_err(|e| JsValue::from_str(&e.to_string()))?;
@@ -2,7 +2,7 @@ use crate::errors::from_dpp_err;
2
2
  use crate::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitnessWasm;
3
3
  use crate::utils::WithJsError;
4
4
  use crate::validation::ValidationResultWasm;
5
- use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyWithWitness;
5
+ use dpp::identity::state_transition::identity_public_key_transitions::IdentityPublicKeyInCreationWithWitness;
6
6
  use dpp::identity::state_transition::identity_update_transition::validate_public_keys::IdentityUpdatePublicKeysValidator;
7
7
  use dpp::identity::validation::TPublicKeysValidator;
8
8
  use dpp::platform_value::Value;
@@ -31,7 +31,7 @@ impl IdentityUpdatePublicKeysValidatorWasm {
31
31
  let public_keys = raw_public_keys
32
32
  .into_iter()
33
33
  .map(|raw_key| {
34
- let parsed_key: IdentityPublicKeyWithWitness =
34
+ let parsed_key: IdentityPublicKeyInCreationWithWitness =
35
35
  IdentityPublicKeyWithWitnessWasm::new(raw_key)?.into();
36
36
 
37
37
  parsed_key.to_raw_object(false).with_js_error()