@dashevo/wasm-dpp 0.24.0-dev.29 → 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.
- package/Cargo.toml +2 -2
- package/dist/wasm/wasm_dpp.d.ts +722 -571
- package/dist/wasm/wasm_dpp.js +169 -106
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/wasm/wasm_dpp.d.ts +722 -571
- package/package.json +3 -3
- package/src/data_contract/data_contract.rs +1 -1
- package/src/data_contract/data_contract_facade.rs +2 -2
- package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +1 -1
- package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +2 -12
- package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +5 -3
- package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +6 -2
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +2 -14
- package/src/data_contract/state_transition/data_contract_update_transition/validation.rs +6 -4
- package/src/decode_protocol_entity.rs +19 -19
- package/src/document/extended_document.rs +4 -1
- package/src/document/fetch_and_validate_data_contract.rs +2 -2
- package/src/document/mod.rs +5 -3
- package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +9 -6
- package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +1 -1
- package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +1 -1
- package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +1 -2
- package/src/document/state_transition/document_batch_transition/mod.rs +13 -17
- package/src/document/state_transition/document_batch_transition/validation/basic/validate_documents_batch_transition_basic.rs +4 -4
- package/src/document/state_transition/document_batch_transition/validation/state/validate_documents_batch_transitions_state.rs +3 -1
- package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +3 -3
- package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +3 -3
- package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +3 -3
- package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +4 -4
- package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -1
- package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +2 -2
- package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +1 -1
- package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -1
- package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -1
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -1
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -1
- package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +2 -2
- package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -1
- package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -1
- package/src/errors/consensus/basic/document/invalid_document_type_error.rs +2 -2
- package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -1
- package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -1
- package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -1
- package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -1
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -1
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -1
- package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -1
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -1
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -1
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -1
- package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +35 -0
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -1
- package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -1
- package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -1
- package/src/errors/consensus/basic/identity/mod.rs +2 -0
- package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +2 -2
- package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -1
- package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -3
- package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -1
- package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -1
- package/src/errors/consensus/basic/json_schema_error.rs +1 -3
- package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -1
- package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -2
- package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -1
- package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -1
- package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -1
- package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -1
- package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -1
- package/src/errors/consensus/consensus_error.rs +24 -4
- package/src/errors/consensus/deserialize.rs +1 -1
- package/src/errors/consensus/fee/balance_is_not_enough_error.rs +1 -1
- package/src/errors/consensus/signature/basic_bls_error.rs +38 -0
- package/src/errors/consensus/signature/basic_ecdsa_error.rs +38 -0
- package/src/errors/consensus/signature/mod.rs +6 -0
- package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +38 -0
- package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +2 -2
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +58 -1
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +66 -1
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +50 -1
- package/src/errors/consensus/state/document/document_already_present_error.rs +1 -1
- package/src/errors/consensus/state/document/document_not_found_error.rs +1 -1
- package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -1
- package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +2 -2
- package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -1
- package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -1
- package/src/errors/consensus/state/document/invalid_document_revision_error.rs +1 -1
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -1
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -1
- package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -1
- package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -1
- package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -1
- package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -1
- package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +1 -1
- package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -1
- package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -1
- package/src/errors/consensus/state/identity/missing_identity_public_key_ids_error.rs +26 -0
- package/src/errors/consensus/state/identity/mod.rs +2 -0
- package/src/errors/consensus/value_error.rs +1 -1
- package/src/errors/from.rs +0 -1
- package/src/generate_temporary_ecdsa_private_key.rs +2 -6
- package/src/identity/factory_utils.rs +4 -4
- package/src/identity/identity_public_key/key_type.rs +2 -0
- package/src/identity/identity_public_key/purpose.rs +7 -0
- package/src/identity/mod.rs +1 -1
- package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs +6 -2
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +8 -18
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_state_validator.rs +3 -1
- package/src/identity/state_transition/identity_create_transition/to_object.rs +2 -2
- package/src/identity/state_transition/identity_public_key_transitions.rs +11 -11
- package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs +6 -2
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +1 -12
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_state_validator.rs +3 -1
- package/src/identity/state_transition/identity_update_transition/apply_identity_update_transition.rs +3 -1
- package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
- package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +5 -18
- package/src/identity/state_transition/identity_update_transition/identity_update_transition_state_validator.rs +3 -2
- package/src/identity/state_transition/identity_update_transition/to_object.rs +2 -2
- package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
- package/src/state_repository.rs +3 -2
- package/src/state_transition/fee/calculate_state_transition_fee.rs +8 -5
- package/src/state_transition/state_transition_facade.rs +16 -15
- package/src/state_transition/validation/state_transition_fee_validator.rs +3 -1
- package/src/state_transition/validation/validate_state_transition_identity_signature.rs +3 -1
- package/src/state_transition/validation/validate_state_transition_key_signature.rs +7 -1
- package/src/utils.rs +2 -4
- package/src/validation/validation_result.rs +12 -7
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +0 -17
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +10 -3
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +4 -7
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +20 -7
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -7
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +4 -3
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -3
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +3 -2
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +5 -6
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +20 -18
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +1 -2
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +7 -3
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +1 -2
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -1
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
- package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +10 -4
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +3 -1
- 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(
|
|
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(
|
|
45
|
+
.map_err(JsError::from)?;
|
|
46
46
|
|
|
47
47
|
Ok(Buffer::from_bytes(bytes.as_slice()))
|
|
48
48
|
}
|
package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
40
|
+
.map_err(JsError::from)?;
|
|
41
41
|
|
|
42
42
|
Ok(Buffer::from_bytes(bytes.as_slice()))
|
|
43
43
|
}
|
package/src/errors/from.rs
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
use crate::buffer::Buffer;
|
|
2
1
|
use dpp::dashcore::secp256k1::rand::thread_rng;
|
|
3
|
-
|
|
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::
|
|
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<
|
|
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<
|
|
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<
|
|
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
|
}
|
package/src/identity/mod.rs
CHANGED
package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs
CHANGED
|
@@ -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(
|
|
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
|
|
package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs
CHANGED
|
@@ -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::
|
|
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 =
|
|
60
|
-
|
|
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<
|
|
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<
|
|
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(
|
|
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
|
-
.
|
|
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::
|
|
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<
|
|
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::
|
|
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(
|
|
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 =
|
|
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.
|
|
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) ->
|
|
177
|
+
pub fn into_inner(self) -> IdentityPublicKeyInCreationWithWitness {
|
|
178
178
|
self.0
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
pub fn inner(&self) -> &
|
|
181
|
+
pub fn inner(&self) -> &IdentityPublicKeyInCreationWithWitness {
|
|
182
182
|
&self.0
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
pub fn inner_mut(&mut self) -> &mut
|
|
185
|
+
pub fn inner_mut(&mut self) -> &mut IdentityPublicKeyInCreationWithWitness {
|
|
186
186
|
&mut self.0
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
impl From<
|
|
191
|
-
fn from(v:
|
|
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
|
-
|
|
203
|
+
IdentityPublicKeyInCreationWithWitness::from_raw_json_object(val).with_js_error()?,
|
|
204
204
|
))
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
impl From<IdentityPublicKeyWithWitnessWasm> for
|
|
208
|
+
impl From<IdentityPublicKeyWithWitnessWasm> for IdentityPublicKeyInCreationWithWitness {
|
|
209
209
|
fn from(pk: IdentityPublicKeyWithWitnessWasm) -> Self {
|
|
210
210
|
pk.0
|
|
211
211
|
}
|
package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs
CHANGED
|
@@ -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(
|
|
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
|
|
package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs
CHANGED
|
@@ -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
|
-
.
|
|
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()))?;
|
package/src/identity/state_transition/identity_update_transition/apply_identity_update_transition.rs
CHANGED
|
@@ -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::
|
|
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:
|
|
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()
|