@dashevo/wasm-dpp 0.24.0-dev.33 → 0.25.0-dev.10
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 +600 -454
- package/dist/wasm/wasm_dpp.js +178 -120
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/test/fixtures/getDocumentsFixture.js +5 -1
- package/lib/wasm/wasm_dpp.d.ts +600 -454
- package/package.json +4 -4
- package/src/dash_platform_protocol.rs +1 -1
- package/src/data_contract/data_contract.rs +2 -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 +7 -16
- 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 +7 -18
- 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 +5 -2
- 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 +18 -25
- 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 +4 -2
- 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 +14 -32
- 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 +7 -26
- 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 +11 -32
- 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 +18 -21
- package/src/state_transition/validation/state_transition_fee_validator.rs +3 -1
- package/src/state_transition/validation/validate_state_transition_identity_signature.rs +22 -6
- 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/DataContractFacade.spec.js +17 -20
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +5 -4
- 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 +21 -8
- package/test/unit/dataContract/DataContract.spec.js +9 -21
- package/test/unit/dataContract/DataContractFactory.spec.js +19 -28
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +2 -4
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -7
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -8
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +3 -5
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -3
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +8 -6
- package/test/unit/decodeProtocolEntityFactory.spec.js +4 -1
- package/test/unit/document/Document.spec.js +9 -7
- package/test/unit/document/DocumentFactory.spec.js +38 -90
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +2 -3
- 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/Identity.spec.js +3 -8
- package/test/unit/identity/IdentityFactory.spec.js +3 -4
- 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 +12 -6
- package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +4 -16
- package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +8 -4
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +3 -1
- 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.
|
|
3
|
+
"version": "0.25.0-dev.10",
|
|
4
4
|
"description": "The JavaScript implementation of the Dash Platform Protocol",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"@babel/cli": "^7.21.0",
|
|
44
44
|
"@babel/core": "^7.15.5",
|
|
45
45
|
"@babel/preset-env": "^7.15.4",
|
|
46
|
-
"@dashevo/dashcore-lib": "~0.20.
|
|
47
|
-
"@dashevo/dpns-contract": "0.
|
|
48
|
-
"@dashevo/dpp": "0.
|
|
46
|
+
"@dashevo/dashcore-lib": "~0.20.3",
|
|
47
|
+
"@dashevo/dpns-contract": "0.25.0-dev.10",
|
|
48
|
+
"@dashevo/dpp": "0.25.0-dev.10",
|
|
49
49
|
"@dashevo/wasm-re2": "~1.0.2",
|
|
50
50
|
"@types/bs58": "^4.0.1",
|
|
51
51
|
"@types/node": "^14.6.0",
|
|
@@ -51,7 +51,7 @@ impl DashPlatformProtocol {
|
|
|
51
51
|
// "attempted to set a logger after the logging system was already initialized"
|
|
52
52
|
// Usage of unsafe is fine here as we are in a single-threaded JS environment
|
|
53
53
|
unsafe {
|
|
54
|
-
if
|
|
54
|
+
if !LOGGER_INITIALIZED {
|
|
55
55
|
LOGGER_INITIALIZED = true;
|
|
56
56
|
wasm_logger::init(wasm_logger::Config::new(log::Level::Debug));
|
|
57
57
|
}
|
|
@@ -11,6 +11,7 @@ use dpp::data_contract::{DataContract, SCHEMA_URI};
|
|
|
11
11
|
use dpp::platform_value::string_encoding::Encoding;
|
|
12
12
|
use dpp::platform_value::{Bytes32, Value};
|
|
13
13
|
|
|
14
|
+
use dpp::serialization_traits::PlatformSerializable;
|
|
14
15
|
use dpp::{platform_value, Convertible};
|
|
15
16
|
|
|
16
17
|
use crate::errors::RustConversionError;
|
|
@@ -303,7 +304,7 @@ impl DataContractWasm {
|
|
|
303
304
|
|
|
304
305
|
#[wasm_bindgen(js_name=toBuffer)]
|
|
305
306
|
pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
|
|
306
|
-
let bytes = self.0
|
|
307
|
+
let bytes = PlatformSerializable::serialize(&self.0).with_js_error()?;
|
|
307
308
|
Ok(Buffer::from_bytes(&bytes))
|
|
308
309
|
}
|
|
309
310
|
|
|
@@ -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
|
-
|
|
14
|
+
|
|
15
15
|
use dpp::{Convertible, ProtocolError};
|
|
16
16
|
use std::sync::Arc;
|
|
17
|
-
|
|
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
|
}
|
|
@@ -8,6 +8,8 @@ pub use validation::*;
|
|
|
8
8
|
|
|
9
9
|
use dpp::consensus::signature::SignatureError;
|
|
10
10
|
use dpp::consensus::ConsensusError;
|
|
11
|
+
use dpp::serialization_traits::PlatformSerializable;
|
|
12
|
+
use dpp::state_transition::StateTransition;
|
|
11
13
|
use dpp::{
|
|
12
14
|
data_contract::state_transition::data_contract_create_transition::DataContractCreateTransition,
|
|
13
15
|
platform_value,
|
|
@@ -24,7 +26,7 @@ use crate::errors::protocol_error::from_protocol_error;
|
|
|
24
26
|
use crate::utils::WithJsError;
|
|
25
27
|
use crate::{
|
|
26
28
|
buffer::Buffer, identifier::IdentifierWrapper, with_js_error, DataContractParameters,
|
|
27
|
-
DataContractWasm, IdentityPublicKeyWasm,
|
|
29
|
+
DataContractWasm, IdentityPublicKeyWasm,
|
|
28
30
|
};
|
|
29
31
|
|
|
30
32
|
#[derive(Clone)]
|
|
@@ -107,11 +109,10 @@ impl DataContractCreateTransitionWasm {
|
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
#[wasm_bindgen(js_name=toBuffer)]
|
|
110
|
-
pub fn to_buffer(&self
|
|
111
|
-
let bytes =
|
|
112
|
-
.0
|
|
113
|
-
|
|
114
|
-
.with_js_error()?;
|
|
112
|
+
pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
|
|
113
|
+
let bytes =
|
|
114
|
+
PlatformSerializable::serialize(&StateTransition::DataContractCreate(self.0.clone()))
|
|
115
|
+
.with_js_error()?;
|
|
115
116
|
Ok(Buffer::from_bytes(&bytes))
|
|
116
117
|
}
|
|
117
118
|
|
|
@@ -139,16 +140,6 @@ impl DataContractCreateTransitionWasm {
|
|
|
139
140
|
self.0.is_identity_state_transition()
|
|
140
141
|
}
|
|
141
142
|
|
|
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
143
|
#[wasm_bindgen(js_name=toObject)]
|
|
153
144
|
pub fn to_object(&self, skip_signature: Option<bool>) -> Result<JsValue, JsValue> {
|
|
154
145
|
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::
|
|
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(¶meters)?;
|
|
51
|
-
let mut validation_result =
|
|
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(
|
|
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,9 +6,9 @@ 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;
|
|
10
|
+
use dpp::serialization_traits::PlatformSerializable;
|
|
11
|
+
use dpp::state_transition::StateTransition;
|
|
12
12
|
use dpp::{
|
|
13
13
|
consensus::signature::SignatureError,
|
|
14
14
|
data_contract::state_transition::data_contract_update_transition::DataContractUpdateTransition,
|
|
@@ -28,7 +28,7 @@ use crate::{
|
|
|
28
28
|
};
|
|
29
29
|
use crate::{
|
|
30
30
|
buffer::Buffer, errors::protocol_error::from_protocol_error, identifier::IdentifierWrapper,
|
|
31
|
-
with_js_error, DataContractParameters, DataContractWasm,
|
|
31
|
+
with_js_error, DataContractParameters, DataContractWasm,
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
#[derive(Clone)]
|
|
@@ -111,11 +111,10 @@ impl DataContractUpdateTransitionWasm {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
#[wasm_bindgen(js_name=toBuffer)]
|
|
114
|
-
pub fn to_buffer(&self
|
|
115
|
-
let bytes =
|
|
116
|
-
.0
|
|
117
|
-
|
|
118
|
-
.with_js_error()?;
|
|
114
|
+
pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
|
|
115
|
+
let bytes =
|
|
116
|
+
PlatformSerializable::serialize(&StateTransition::DataContractUpdate(self.0.clone()))
|
|
117
|
+
.with_js_error()?;
|
|
119
118
|
Ok(Buffer::from_bytes(&bytes))
|
|
120
119
|
}
|
|
121
120
|
|
|
@@ -143,16 +142,6 @@ impl DataContractUpdateTransitionWasm {
|
|
|
143
142
|
self.0.is_identity_state_transition()
|
|
144
143
|
}
|
|
145
144
|
|
|
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
145
|
#[wasm_bindgen(js_name=hash)]
|
|
157
146
|
pub fn hash(&self, skip_signature: Option<bool>) -> Result<Buffer, JsValue> {
|
|
158
147
|
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,
|
|
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(¶meters)?;
|
|
74
|
-
let mut validation_result =
|
|
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
|
-
|
|
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(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
}
|
|
@@ -7,6 +7,7 @@ use dpp::util::json_schema::JsonSchemaExt;
|
|
|
7
7
|
use dpp::util::json_value::JsonValueExt;
|
|
8
8
|
|
|
9
9
|
use dpp::platform_value::converter::serde_json::BTreeValueJsonConverter;
|
|
10
|
+
use dpp::serialization_traits::PlatformSerializable;
|
|
10
11
|
use dpp::ProtocolError;
|
|
11
12
|
use serde::{Deserialize, Serialize};
|
|
12
13
|
use std::convert::TryInto;
|
|
@@ -198,6 +199,9 @@ impl ExtendedDocumentWasm {
|
|
|
198
199
|
Value::Bytes(bytes) => {
|
|
199
200
|
return Buffer::from_bytes(bytes).into();
|
|
200
201
|
}
|
|
202
|
+
Value::Bytes20(bytes) => {
|
|
203
|
+
return Buffer::from_bytes(bytes.as_slice()).into();
|
|
204
|
+
}
|
|
201
205
|
Value::Bytes32(bytes) => {
|
|
202
206
|
return Buffer::from_bytes(bytes.as_slice()).into();
|
|
203
207
|
}
|
|
@@ -322,8 +326,7 @@ impl ExtendedDocumentWasm {
|
|
|
322
326
|
|
|
323
327
|
#[wasm_bindgen(js_name=toBuffer)]
|
|
324
328
|
pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
|
|
325
|
-
let bytes = self.0.
|
|
326
|
-
|
|
329
|
+
let bytes = PlatformSerializable::serialize(&self.0.clone()).with_js_error()?;
|
|
327
330
|
Ok(Buffer::from_bytes(&bytes))
|
|
328
331
|
}
|
|
329
332
|
|
|
@@ -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::
|
|
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:
|
|
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())
|
package/src/document/mod.rs
CHANGED
|
@@ -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::
|
|
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
|
-
|
|
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
|
}
|
package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs
CHANGED
|
@@ -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
|
-
|
|
18
|
-
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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::{
|
|
28
|
+
utils::{Inner, ToSerdeJSONExt, WithJsError},
|
|
30
29
|
with_js_error, BinaryType, ConversionOptions, DataContractWasm,
|
|
31
30
|
};
|
|
32
31
|
|
|
@@ -19,6 +19,8 @@ use serde::{Deserialize, Serialize};
|
|
|
19
19
|
use dpp::consensus::signature::SignatureError;
|
|
20
20
|
use dpp::consensus::ConsensusError;
|
|
21
21
|
use dpp::platform_value::{BinaryData, ReplacementType};
|
|
22
|
+
use dpp::serialization_traits::PlatformSerializable;
|
|
23
|
+
use dpp::state_transition::StateTransition;
|
|
22
24
|
use wasm_bindgen::prelude::*;
|
|
23
25
|
|
|
24
26
|
use crate::{
|
|
@@ -28,7 +30,7 @@ use crate::{
|
|
|
28
30
|
identifier::IdentifierWrapper,
|
|
29
31
|
lodash::lodash_set,
|
|
30
32
|
utils::{Inner, IntoWasm, ToSerdeJSONExt, WithJsError},
|
|
31
|
-
IdentityPublicKeyWasm,
|
|
33
|
+
IdentityPublicKeyWasm,
|
|
32
34
|
};
|
|
33
35
|
pub mod apply_document_batch_transition;
|
|
34
36
|
pub mod document_transition;
|
|
@@ -79,9 +81,11 @@ impl DocumentsBatchTransitionWasm {
|
|
|
79
81
|
.map_err(ProtocolError::ValueError)
|
|
80
82
|
.with_js_error()?;
|
|
81
83
|
|
|
82
|
-
let documents_batch_transition =
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
let documents_batch_transition = DocumentsBatchTransition::from_raw_object_with_contracts(
|
|
85
|
+
batch_transition_value,
|
|
86
|
+
data_contracts,
|
|
87
|
+
)
|
|
88
|
+
.with_js_error()?;
|
|
85
89
|
|
|
86
90
|
Ok(documents_batch_transition.into())
|
|
87
91
|
}
|
|
@@ -327,8 +331,12 @@ impl DocumentsBatchTransitionWasm {
|
|
|
327
331
|
}
|
|
328
332
|
|
|
329
333
|
#[wasm_bindgen(js_name=getKeySecurityLevelRequirement)]
|
|
330
|
-
pub fn get_security_level_requirement(&self) ->
|
|
331
|
-
|
|
334
|
+
pub fn get_security_level_requirement(&self) -> js_sys::Array {
|
|
335
|
+
let array = js_sys::Array::new();
|
|
336
|
+
for security_level in self.0.get_security_level_requirement() {
|
|
337
|
+
array.push(&JsValue::from(security_level as u32));
|
|
338
|
+
}
|
|
339
|
+
array
|
|
332
340
|
}
|
|
333
341
|
|
|
334
342
|
// AbstractStateTransition methods
|
|
@@ -362,26 +370,11 @@ impl DocumentsBatchTransitionWasm {
|
|
|
362
370
|
self.0.is_identity_state_transition()
|
|
363
371
|
}
|
|
364
372
|
|
|
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
373
|
#[wasm_bindgen(js_name=toBuffer)]
|
|
376
|
-
pub fn to_buffer(&self
|
|
377
|
-
let
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
} else {
|
|
381
|
-
false
|
|
382
|
-
};
|
|
383
|
-
let bytes = self.0.to_buffer(skip_signature).with_js_error()?;
|
|
384
|
-
|
|
374
|
+
pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
|
|
375
|
+
let bytes =
|
|
376
|
+
PlatformSerializable::serialize(&StateTransition::DocumentsBatch(self.0.clone()))
|
|
377
|
+
.with_js_error()?;
|
|
385
378
|
Ok(Buffer::from_bytes(&bytes))
|
|
386
379
|
}
|
|
387
380
|
|
|
@@ -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::
|
|
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 =
|
|
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()?;
|
package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs
CHANGED
|
@@ -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(
|
|
44
|
+
.map_err(JsError::from)?;
|
|
45
45
|
|
|
46
46
|
Ok(Buffer::from_bytes(bytes.as_slice()))
|
|
47
47
|
}
|
package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs
CHANGED
|
@@ -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()
|
|
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()
|
|
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(
|
|
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(
|
|
46
|
+
.map_err(JsError::from)?;
|
|
47
47
|
|
|
48
48
|
Ok(Buffer::from_bytes(bytes.as_slice()))
|
|
49
49
|
}
|