@dashevo/wasm-dpp 0.25.6 → 0.25.9
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 +3 -2
- package/README.md +1 -1
- package/dist/wasm/wasm_dpp.d.ts +808 -712
- package/dist/wasm/wasm_dpp.js +853 -452
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/bls/bls.js +48 -0
- package/lib/test/fixtures/getChainAssetLockProofFixture.js +20 -1
- package/lib/test/fixtures/getDataContractFixture.js +4 -6
- package/lib/test/fixtures/getDocumentTransitionsFixture.js +31 -1
- package/lib/test/fixtures/getInstantAssetLockProofFixture.js +32 -12
- package/lib/test/mocks/getBlsAdapterMock.js +1 -1
- package/lib/utils/creditsConverter.js +14 -0
- package/lib/utils/hash.js +18 -0
- package/lib/wasm/wasm_dpp.d.ts +808 -712
- package/package.json +3 -5
- package/src/dash_platform_protocol.rs +5 -5
- package/src/document/errors/invalid_document_error.rs +5 -0
- package/src/document/extended_document.rs +15 -0
- package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +219 -214
- package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +1 -1
- package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +4 -2
- package/src/errors/consensus/basic/json_schema_error.rs +35 -5
- package/src/identity/identity_facade.rs +7 -5
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +32 -17
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +22 -13
- package/src/identity/state_transition/asset_lock_proof/mod.rs +12 -11
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +1 -0
- package/src/identity/state_transition/identity_create_transition/to_object.rs +1 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +1 -0
- package/src/identity/state_transition/identity_topup_transition/to_object.rs +1 -0
- package/src/lib.rs +1 -1
- package/src/validation/mod.rs +2 -2
- package/src/validation/validation_result.rs +16 -15
- package/test/integration/document/DocumentFacade.spec.js +11 -27
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +9 -19
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +2 -2
- package/test/integration/document/validation/validateDocumentFactory.spec.js +2 -2
- package/test/integration/identity/IdentityFacade.spec.js +1 -2
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +2 -2
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +2 -2
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +6 -8
- package/test/unit/document/Document.spec.js +30 -52
- package/test/unit/document/DocumentFactory.spec.js +2 -2
- package/test/unit/document/errors/InvalidDocumentError.spec.js +9 -9
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +158 -155
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +132 -134
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +3 -3
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +568 -591
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +5 -13
- package/test/unit/identity/Identity.spec.js +2 -2
- package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +9 -28
- package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +19 -27
- package/lib/test/fixtures/getDashPayContractFixture.js +0 -1
- package/lib/test/fixtures/getDashPayDocumentFixture.js +0 -1
- package/lib/test/fixtures/getDpnsContractFixture.js +0 -1
- package/lib/test/fixtures/getDpnsDocumentFixture.js +0 -1
- package/lib/test/fixtures/getFeatureFlagsContractFixture.js +0 -1
- package/lib/test/fixtures/getFeatureFlagsDocumentsFixture.js +0 -1
- package/lib/test/fixtures/getIdentityTopUpTransitionFixtureJs.js +0 -1
- package/lib/test/fixtures/getMasternodeRewardShareDocumentsFixture.js +0 -1
- package/lib/test/fixtures/getMasternodeRewardSharesContractFixture.js +0 -1
- package/lib/test/fixtures/getPreorderDocumentFixture.js +0 -1
- package/lib/test/fixtures/getRawTransactionFixture.js +0 -1
- package/lib/test/fixtures/js/generateRandomIdentifier.js +0 -1
- package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +0 -1
- package/lib/test/fixtures/js/getDataContractFixture.js +0 -1
- package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +0 -1
- package/lib/test/fixtures/js/getDocumentsFixture.js +0 -1
- package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +0 -1
- package/test/integration/DashPlatformProtocol.spec.js +0 -53
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +0 -195
- package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -500
- package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +0 -53
- package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +0 -103
- package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +0 -84
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -45
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +0 -49
- package/test/unit/dataTrigger/DataTrigger.spec.js +0 -132
- package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +0 -29
- package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +0 -107
- package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +0 -382
- package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +0 -99
- package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +0 -113
- package/test/unit/dataTrigger/rejectDataTrigger.spec.js +0 -51
- package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +0 -202
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +0 -256
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +0 -94
- package/test/unit/errors/consensus/codes.spec.js +0 -102
- package/test/unit/identity/creditsConverter.spec.js +0 -34
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +0 -83
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +0 -138
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +0 -100
- package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +0 -36
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +0 -63
- package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +0 -47
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
use dpp::dashcore::consensus::Encodable;
|
|
2
|
+
use dpp::dashcore::OutPoint;
|
|
3
|
+
use dpp::identity::state_transition::asset_lock_proof::AssetLockProofType;
|
|
1
4
|
use serde::{Deserialize, Serialize};
|
|
2
5
|
use std::convert::TryInto;
|
|
3
6
|
use wasm_bindgen::prelude::*;
|
|
@@ -10,8 +13,8 @@ use crate::{
|
|
|
10
13
|
with_js_error,
|
|
11
14
|
};
|
|
12
15
|
use dpp::identity::state_transition::asset_lock_proof::chain::ChainAssetLockProof;
|
|
16
|
+
use dpp::platform_value::string_encoding;
|
|
13
17
|
use dpp::platform_value::string_encoding::Encoding;
|
|
14
|
-
use dpp::platform_value::{string_encoding, Bytes36};
|
|
15
18
|
|
|
16
19
|
#[wasm_bindgen(js_name=ChainAssetLockProof)]
|
|
17
20
|
#[derive(Clone)]
|
|
@@ -20,8 +23,6 @@ pub struct ChainAssetLockProofWasm(ChainAssetLockProof);
|
|
|
20
23
|
#[derive(Debug, Serialize, Deserialize)]
|
|
21
24
|
#[serde(rename_all = "camelCase")]
|
|
22
25
|
struct ChainAssetLockProofParams {
|
|
23
|
-
#[serde(rename = "type")]
|
|
24
|
-
lock_type: u8,
|
|
25
26
|
core_chain_locked_height: u32,
|
|
26
27
|
out_point: Vec<u8>,
|
|
27
28
|
}
|
|
@@ -41,14 +42,14 @@ impl From<ChainAssetLockProofWasm> for ChainAssetLockProof {
|
|
|
41
42
|
#[wasm_bindgen(js_class = ChainAssetLockProof)]
|
|
42
43
|
impl ChainAssetLockProofWasm {
|
|
43
44
|
#[wasm_bindgen(constructor)]
|
|
44
|
-
pub fn new(raw_parameters: JsValue) -> Result<ChainAssetLockProofWasm,
|
|
45
|
-
let parameters: ChainAssetLockProofParams =
|
|
46
|
-
|
|
45
|
+
pub fn new(raw_parameters: JsValue) -> Result<ChainAssetLockProofWasm, JsError> {
|
|
46
|
+
let parameters: ChainAssetLockProofParams = serde_wasm_bindgen::from_value(raw_parameters)
|
|
47
|
+
.map_err(|_| JsError::new("invalid raw chain lock proof"))?;
|
|
47
48
|
|
|
48
|
-
let out_point: [u8; 36] = parameters
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
let out_point: [u8; 36] = parameters
|
|
50
|
+
.out_point
|
|
51
|
+
.try_into()
|
|
52
|
+
.map_err(|_| JsError::new("outPoint must be a 36 byte array"))?;
|
|
52
53
|
|
|
53
54
|
let chain_asset_lock_proof =
|
|
54
55
|
ChainAssetLockProof::new(parameters.core_chain_locked_height, out_point);
|
|
@@ -58,7 +59,7 @@ impl ChainAssetLockProofWasm {
|
|
|
58
59
|
|
|
59
60
|
#[wasm_bindgen(js_name=getType)]
|
|
60
61
|
pub fn get_type(&self) -> u8 {
|
|
61
|
-
|
|
62
|
+
AssetLockProofType::Chain as u8
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
#[wasm_bindgen(js_name=getCoreChainLockedHeight)]
|
|
@@ -72,8 +73,15 @@ impl ChainAssetLockProofWasm {
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
#[wasm_bindgen(js_name=getOutPoint)]
|
|
75
|
-
pub fn get_out_point(&self) -> Buffer {
|
|
76
|
-
|
|
76
|
+
pub fn get_out_point(&self) -> Result<Buffer, JsValue> {
|
|
77
|
+
let mut outpoint_bytes = Vec::new();
|
|
78
|
+
|
|
79
|
+
self.0
|
|
80
|
+
.out_point
|
|
81
|
+
.consensus_encode(&mut outpoint_bytes)
|
|
82
|
+
.map_err(|e| e.to_string())?;
|
|
83
|
+
|
|
84
|
+
Ok(Buffer::from_bytes_owned(outpoint_bytes))
|
|
77
85
|
}
|
|
78
86
|
|
|
79
87
|
#[wasm_bindgen(js_name=setOutPoint)]
|
|
@@ -82,7 +90,8 @@ impl ChainAssetLockProofWasm {
|
|
|
82
90
|
RustConversionError::Error(String::from("outPoint must be a 36 byte array"))
|
|
83
91
|
.to_js_value()
|
|
84
92
|
})?;
|
|
85
|
-
|
|
93
|
+
|
|
94
|
+
self.0.out_point = OutPoint::from(out_point);
|
|
86
95
|
|
|
87
96
|
Ok(())
|
|
88
97
|
}
|
|
@@ -91,8 +100,14 @@ impl ChainAssetLockProofWasm {
|
|
|
91
100
|
pub fn to_json(&self) -> Result<JsValue, JsValue> {
|
|
92
101
|
let js_object = self.to_object()?;
|
|
93
102
|
|
|
94
|
-
let
|
|
95
|
-
|
|
103
|
+
let mut outpoint_bytes = Vec::new();
|
|
104
|
+
|
|
105
|
+
self.0
|
|
106
|
+
.out_point
|
|
107
|
+
.consensus_encode(&mut outpoint_bytes)
|
|
108
|
+
.map_err(|e| e.to_string())?;
|
|
109
|
+
|
|
110
|
+
let out_point_base64 = string_encoding::encode(&outpoint_bytes, Encoding::Base64);
|
|
96
111
|
|
|
97
112
|
js_sys::Reflect::set(
|
|
98
113
|
&js_object,
|
|
@@ -110,7 +125,7 @@ impl ChainAssetLockProofWasm {
|
|
|
110
125
|
let serializer = serde_wasm_bindgen::Serializer::json_compatible();
|
|
111
126
|
let js_object = with_js_error!(asset_lock_value.serialize(&serializer))?;
|
|
112
127
|
|
|
113
|
-
let out_point = self.get_out_point()
|
|
128
|
+
let out_point = self.get_out_point()?;
|
|
114
129
|
|
|
115
130
|
js_sys::Reflect::set(
|
|
116
131
|
&js_object,
|
|
@@ -3,6 +3,8 @@ use dpp::dashcore::{
|
|
|
3
3
|
consensus::encode::serialize,
|
|
4
4
|
};
|
|
5
5
|
|
|
6
|
+
use dpp::dashcore::consensus::Encodable;
|
|
7
|
+
use dpp::identity::state_transition::asset_lock_proof::AssetLockProofType;
|
|
6
8
|
use serde::{Deserialize, Serialize};
|
|
7
9
|
use std::convert::TryInto;
|
|
8
10
|
use wasm_bindgen::prelude::*;
|
|
@@ -15,7 +17,7 @@ use crate::{
|
|
|
15
17
|
with_js_error,
|
|
16
18
|
};
|
|
17
19
|
use dpp::identity::state_transition::asset_lock_proof::instant::{
|
|
18
|
-
InstantAssetLockProof,
|
|
20
|
+
InstantAssetLockProof, RawInstantLockProof,
|
|
19
21
|
};
|
|
20
22
|
use dpp::platform_value::string_encoding;
|
|
21
23
|
use dpp::platform_value::string_encoding::Encoding;
|
|
@@ -51,34 +53,41 @@ impl From<InstantAssetLockProofWasm> for InstantAssetLockProof {
|
|
|
51
53
|
#[wasm_bindgen(js_class = InstantAssetLockProof)]
|
|
52
54
|
impl InstantAssetLockProofWasm {
|
|
53
55
|
#[wasm_bindgen(constructor)]
|
|
54
|
-
pub fn new(raw_parameters: JsValue) -> Result<InstantAssetLockProofWasm,
|
|
55
|
-
let raw_instant_lock:
|
|
56
|
-
|
|
56
|
+
pub fn new(raw_parameters: JsValue) -> Result<InstantAssetLockProofWasm, JsError> {
|
|
57
|
+
let raw_instant_lock: RawInstantLockProof = serde_wasm_bindgen::from_value(raw_parameters)
|
|
58
|
+
.map_err(|_| JsError::new("invalid raw instant lock proof"))?;
|
|
57
59
|
|
|
58
|
-
let instant_asset_lock_proof: InstantAssetLockProof =
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
.to_js_value()
|
|
62
|
-
})?;
|
|
60
|
+
let instant_asset_lock_proof: InstantAssetLockProof = raw_instant_lock
|
|
61
|
+
.try_into()
|
|
62
|
+
.map_err(|_| JsError::new("object passed is not a raw Instant Lock"))?;
|
|
63
63
|
|
|
64
64
|
Ok(instant_asset_lock_proof.into())
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
#[wasm_bindgen(js_name=getType)]
|
|
68
68
|
pub fn get_type(&self) -> u8 {
|
|
69
|
-
|
|
69
|
+
AssetLockProofType::Instant as u8
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
#[wasm_bindgen(js_name=getOutputIndex)]
|
|
73
|
-
pub fn get_output_index(&self) ->
|
|
73
|
+
pub fn get_output_index(&self) -> u32 {
|
|
74
74
|
self.0.output_index()
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
#[wasm_bindgen(js_name=getOutPoint)]
|
|
78
|
-
pub fn get_out_point(&self) -> Option<Buffer> {
|
|
78
|
+
pub fn get_out_point(&self) -> Result<Option<Buffer>, JsValue> {
|
|
79
79
|
self.0
|
|
80
80
|
.out_point()
|
|
81
|
-
.map(|out_point|
|
|
81
|
+
.map(|out_point| {
|
|
82
|
+
let mut outpoint_bytes = Vec::new();
|
|
83
|
+
|
|
84
|
+
out_point
|
|
85
|
+
.consensus_encode(&mut outpoint_bytes)
|
|
86
|
+
.map_err(|e| e.to_string())?;
|
|
87
|
+
|
|
88
|
+
Ok(Buffer::from_bytes_owned(outpoint_bytes))
|
|
89
|
+
})
|
|
90
|
+
.transpose()
|
|
82
91
|
}
|
|
83
92
|
|
|
84
93
|
#[wasm_bindgen(js_name=getOutput)]
|
|
@@ -56,7 +56,7 @@ pub trait AssetLockProofLike {
|
|
|
56
56
|
impl AssetLockProofWasm {
|
|
57
57
|
#[wasm_bindgen(constructor)]
|
|
58
58
|
pub fn new(raw_asset_lock_proof: JsValue) -> Result<AssetLockProofWasm, JsValue> {
|
|
59
|
-
let lock_type =
|
|
59
|
+
let lock_type = get_type_from_raw_asset_lock_proof(&raw_asset_lock_proof)?;
|
|
60
60
|
|
|
61
61
|
match lock_type {
|
|
62
62
|
AssetLockProofType::Instant => {
|
|
@@ -93,21 +93,22 @@ impl AssetLockProofWasm {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
fn
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
})?
|
|
96
|
+
fn get_type_from_raw_asset_lock_proof(
|
|
97
|
+
raw_asset_lock_proof: &JsValue,
|
|
98
|
+
) -> Result<AssetLockProofType, JsError> {
|
|
99
|
+
let proof_type = js_sys::Reflect::get(raw_asset_lock_proof, &JsValue::from_str("type"))
|
|
100
|
+
.map_err(|_| JsError::new("error getting type from raw asset lock"))?
|
|
102
101
|
.as_f64()
|
|
103
|
-
.ok_or_else(||
|
|
102
|
+
.ok_or_else(|| JsError::new("asset lock type must be a number"))?;
|
|
103
|
+
|
|
104
|
+
(proof_type as u64)
|
|
104
105
|
.try_into()
|
|
105
|
-
.map_err(|_|
|
|
106
|
+
.map_err(|_| JsError::new("unrecognized asset lock proof type"))
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
#[wasm_bindgen(js_name=createAssetLockProofInstance)]
|
|
109
|
-
pub fn create_asset_lock_proof_instance(raw_parameters: JsValue) -> Result<JsValue,
|
|
110
|
-
let lock_type =
|
|
110
|
+
pub fn create_asset_lock_proof_instance(raw_parameters: JsValue) -> Result<JsValue, JsError> {
|
|
111
|
+
let lock_type = get_type_from_raw_asset_lock_proof(&raw_parameters)?;
|
|
111
112
|
|
|
112
113
|
match lock_type {
|
|
113
114
|
AssetLockProofType::Instant => {
|
package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs
CHANGED
|
@@ -14,6 +14,7 @@ use dpp::version::PlatformVersion;
|
|
|
14
14
|
use crate::identifier::IdentifierWrapper;
|
|
15
15
|
|
|
16
16
|
use crate::identity::state_transition::asset_lock_proof::create_asset_lock_proof_from_wasm_instance;
|
|
17
|
+
use dpp::identity::state_transition::AssetLockProved;
|
|
17
18
|
|
|
18
19
|
use crate::{
|
|
19
20
|
buffer::Buffer,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
|
|
2
|
+
use dpp::identity::state_transition::AssetLockProved;
|
|
2
3
|
use dpp::state_transition::identity_create_transition::accessors::IdentityCreateTransitionAccessorsV0;
|
|
3
4
|
use dpp::state_transition::public_key_in_creation::IdentityPublicKeyInCreation;
|
|
4
5
|
use dpp::{
|
package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs
CHANGED
|
@@ -4,6 +4,7 @@ use std::default::Default;
|
|
|
4
4
|
|
|
5
5
|
use crate::bls_adapter::{BlsAdapter, JsBlsAdapter};
|
|
6
6
|
use crate::errors::from_dpp_err;
|
|
7
|
+
use dpp::identity::state_transition::AssetLockProved;
|
|
7
8
|
use dpp::identity::KeyType;
|
|
8
9
|
use dpp::platform_value::BinaryData;
|
|
9
10
|
use dpp::serialization::ValueConvertible;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
use dpp::identity::state_transition::asset_lock_proof::AssetLockProof;
|
|
2
|
+
use dpp::identity::state_transition::AssetLockProved;
|
|
2
3
|
use dpp::state_transition::identity_topup_transition::accessors::IdentityTopUpTransitionAccessorsV0;
|
|
3
4
|
use dpp::state_transition::identity_topup_transition::IdentityTopUpTransition;
|
|
4
5
|
use dpp::{identifier::Identifier, state_transition::StateTransitionLike};
|
package/src/lib.rs
CHANGED
package/src/validation/mod.rs
CHANGED
|
@@ -75,21 +75,22 @@ impl ValidationResultWasm {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
78
|
+
// TODO: restore?
|
|
79
|
+
// #[wasm_bindgen(js_name = addError)]
|
|
80
|
+
// pub fn add_error_wasm(&mut self, error_buffer: Buffer) -> Result<JsValue, JsValue> {
|
|
81
|
+
// let error_bytes: Vec<u8> = Uint8Array::new_with_byte_offset_and_length(
|
|
82
|
+
// &error_buffer.buffer(),
|
|
83
|
+
// error_buffer.byte_offset(),
|
|
84
|
+
// error_buffer.length(),
|
|
85
|
+
// )
|
|
86
|
+
// .to_vec();
|
|
87
|
+
//
|
|
88
|
+
// let consensus_error = ConsensusError::deserialize(&error_bytes).with_js_error()?;
|
|
89
|
+
//
|
|
90
|
+
// self.0.add_error(consensus_error);
|
|
91
|
+
//
|
|
92
|
+
// Ok(JsValue::undefined())
|
|
93
|
+
// }
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
impl ValidationResultWasm {
|
|
@@ -1,48 +1,37 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
|
-
const generateRandomIdentifier = require('../../../lib/test/
|
|
3
|
-
const getDataContractFixture = require('../../../lib/test/fixtures/
|
|
4
|
-
const getDocumentsFixture = require('../../../lib/test/fixtures/
|
|
2
|
+
const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
3
|
+
const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
|
|
4
|
+
const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
|
|
5
5
|
const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
6
|
|
|
7
7
|
const {
|
|
8
8
|
ExtendedDocument,
|
|
9
9
|
DataContract,
|
|
10
|
-
Identifier,
|
|
11
10
|
ValidationResult,
|
|
12
11
|
DocumentsBatchTransition,
|
|
13
12
|
DashPlatformProtocol,
|
|
14
13
|
DataContractNotPresentError,
|
|
15
|
-
} = require('
|
|
16
|
-
// const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
|
|
17
|
-
|
|
18
|
-
// let ExtendedDocument;
|
|
19
|
-
// let DataContract;
|
|
20
|
-
// let Identifier;
|
|
21
|
-
// let ValidationResult;
|
|
22
|
-
// let DocumentsBatchTransition;
|
|
23
|
-
// let DashPlatformProtocol;
|
|
24
|
-
// let DataContractNotPresentError;
|
|
14
|
+
} = require('../../..');
|
|
25
15
|
|
|
26
16
|
describe('DocumentFacade', () => {
|
|
27
17
|
let dpp;
|
|
28
18
|
let document;
|
|
29
19
|
let documents;
|
|
30
|
-
let documentsJs;
|
|
31
20
|
let dataContract;
|
|
32
21
|
let ownerId;
|
|
33
22
|
let stateRepositoryMock;
|
|
34
23
|
|
|
35
24
|
beforeEach(async function beforeEach() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
25
|
+
ownerId = await generateRandomIdentifier();
|
|
26
|
+
const dataContractFixture = await getDataContractFixture(ownerId.toBuffer());
|
|
27
|
+
const dataContractObject = dataContractFixture.toObject();
|
|
28
|
+
|
|
40
29
|
dataContract = new DataContract({
|
|
41
30
|
$format_version: '0',
|
|
42
|
-
id: dataContractObject
|
|
31
|
+
id: dataContractObject.id,
|
|
43
32
|
version: 1,
|
|
44
33
|
ownerId: dataContractObject.ownerId,
|
|
45
|
-
documentSchemas: dataContractObject.
|
|
34
|
+
documentSchemas: dataContractObject.documentSchemas,
|
|
46
35
|
});
|
|
47
36
|
|
|
48
37
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
@@ -53,12 +42,7 @@ describe('DocumentFacade', () => {
|
|
|
53
42
|
1,
|
|
54
43
|
);
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
documents = documentsJs.map((d) => {
|
|
58
|
-
const currentDocument = new ExtendedDocument(d.toObject(), dataContract.clone());
|
|
59
|
-
currentDocument.setEntropy(d.entropy);
|
|
60
|
-
return currentDocument;
|
|
61
|
-
});
|
|
45
|
+
documents = await getDocumentsFixture(dataContract);
|
|
62
46
|
([document] = documents);
|
|
63
47
|
});
|
|
64
48
|
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
2
|
-
const getDataContractFixture = require('../../../../../lib/test/fixtures/
|
|
3
|
-
const getDocumentsFixture = require('../../../../../lib/test/fixtures/
|
|
2
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
3
|
+
const getDocumentsFixture = require('../../../../../lib/test/fixtures/getDocumentsFixture');
|
|
4
4
|
|
|
5
5
|
const { default: loadWasmDpp } = require('../../../../..');
|
|
6
6
|
const { IdentityPublicKey } = require('../../../../..');
|
|
7
7
|
|
|
8
|
-
let ExtendedDocument;
|
|
9
|
-
let DataContract;
|
|
10
8
|
let ProtocolVersionValidator;
|
|
11
9
|
let DocumentValidator;
|
|
12
10
|
let DocumentFactory;
|
|
@@ -23,30 +21,22 @@ describe('DocumentBatchTransition', () => {
|
|
|
23
21
|
|
|
24
22
|
beforeEach(async function beforeEach() {
|
|
25
23
|
({
|
|
26
|
-
ExtendedDocument,
|
|
27
|
-
DataContract,
|
|
28
24
|
ProtocolVersionValidator,
|
|
29
25
|
DocumentFactory,
|
|
30
26
|
DocumentValidator,
|
|
31
27
|
} = await loadWasmDpp());
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
dataContractFixtureJs.documents.niceDocument
|
|
36
|
-
|
|
37
|
-
dataContractFixtureJs.documents.prettyDocument
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
dataContractFixture = new DataContract(dataContractFixtureJs.toObject());
|
|
29
|
+
dataContractFixture = await getDataContractFixture();
|
|
30
|
+
//
|
|
31
|
+
// dataContractFixtureJs.documents.niceDocument
|
|
32
|
+
// .signatureSecurityLevelRequirement = IdentityPublicKey.SECURITY_LEVELS.MEDIUM;
|
|
33
|
+
// dataContractFixtureJs.documents.prettyDocument
|
|
34
|
+
// .signatureSecurityLevelRequirement = IdentityPublicKey.SECURITY_LEVELS.MASTER;
|
|
41
35
|
|
|
42
36
|
// 0 is niceDocument,
|
|
43
37
|
// 1 and 2 are pretty documents,
|
|
44
38
|
// 3 and 4 are indexed documents that do not have security level specified
|
|
45
|
-
documentsFixture = getDocumentsFixture(
|
|
46
|
-
const document = new ExtendedDocument(doc.toObject(), dataContractFixture.clone());
|
|
47
|
-
document.setEntropy(doc.entropy);
|
|
48
|
-
return document;
|
|
49
|
-
});
|
|
39
|
+
documentsFixture = await getDocumentsFixture(dataContractFixture);
|
|
50
40
|
|
|
51
41
|
[
|
|
52
42
|
mediumSecurityDocumentFixture, ,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
|
|
2
|
-
const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/
|
|
3
|
-
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/
|
|
2
|
+
const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/getDocumentsFixture');
|
|
3
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
|
|
4
4
|
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
5
5
|
|
|
6
6
|
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const getDataContractFixture = require('../../../../lib/test/fixtures/
|
|
2
|
-
const getDocumentsFixture = require('../../../../lib/test/fixtures/
|
|
1
|
+
const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
|
|
2
|
+
const getDocumentsFixture = require('../../../../lib/test/fixtures/getDocumentsFixture');
|
|
3
3
|
|
|
4
4
|
const { expectJsonSchemaError, expectValidationError } = require('../../../../lib/test/expect/expectError');
|
|
5
5
|
const { default: loadWasmDpp } = require('../../../../dist');
|
|
@@ -24,8 +24,7 @@ describe('IdentityFacade', () => {
|
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
const chainAssetLockProofJS = getChainAssetLockProofFixture();
|
|
27
|
-
|
|
28
|
-
instantAssetLockProof = new InstantAssetLockProof(instantAssetLockProofJS.toObject());
|
|
27
|
+
instantAssetLockProof = await getInstantAssetLockProofFixture();
|
|
29
28
|
chainAssetLockProof = new ChainAssetLockProof(chainAssetLockProofJS.toObject());
|
|
30
29
|
|
|
31
30
|
identity = await getIdentityFixture(instantAssetLockProof.createIdentifier());
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const DashCoreLib = require('@dashevo/dashcore-lib');
|
|
2
2
|
const { expect } = require('chai');
|
|
3
3
|
|
|
4
|
-
const getInstantAssetLockFixture = require('../../../../../../lib/test/fixtures/
|
|
4
|
+
const getInstantAssetLockFixture = require('../../../../../../lib/test/fixtures/getInstantAssetLockProofFixture');
|
|
5
5
|
const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
6
|
const { expectJsonSchemaError, expectValidationError } = require('../../../../../../lib/test/expect/expectError');
|
|
7
7
|
|
|
@@ -36,7 +36,7 @@ describe.skip('validateInstantAssetLockProofStructureFactory', () => {
|
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
beforeEach(async function beforeEach() {
|
|
39
|
-
const assetLock = getInstantAssetLockFixture();
|
|
39
|
+
const assetLock = await getInstantAssetLockFixture();
|
|
40
40
|
transaction = assetLock.getTransaction();
|
|
41
41
|
|
|
42
42
|
rawProof = assetLock.toObject();
|
package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js
CHANGED
|
@@ -2,9 +2,9 @@ const { PrivateKey, crypto: { Hash } } = require('@dashevo/dashcore-lib');
|
|
|
2
2
|
|
|
3
3
|
const crypto = require('crypto');
|
|
4
4
|
|
|
5
|
-
const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
|
|
6
|
-
|
|
7
5
|
const { expect } = require('chai');
|
|
6
|
+
const BlsSignatures = require('../../../../lib/bls/bls');
|
|
7
|
+
|
|
8
8
|
const getIdentityCreateTransitionFixture = require('../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
9
9
|
const { expectValidationError } = require('../../../../lib/test/expect/expectError');
|
|
10
10
|
const getBlsAdapterMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
const JsDataContractUpdateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition');
|
|
2
|
-
|
|
3
1
|
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
4
2
|
const { default: loadWasmDpp } = require('../../../../..');
|
|
5
3
|
const { StateTransitionTypes } = require('../../../../..');
|
|
@@ -81,12 +79,12 @@ describe('DataContractUpdateTransition', () => {
|
|
|
81
79
|
|
|
82
80
|
describe.skip('#hash', () => {
|
|
83
81
|
it('should return State Transition hash as hex', () => {
|
|
84
|
-
const jsStateTransition = new JsDataContractUpdateTransition(stateTransition.toJSON());
|
|
85
|
-
|
|
86
|
-
const result = stateTransition.hash();
|
|
87
|
-
const resultJs = jsStateTransition.hash();
|
|
88
|
-
|
|
89
|
-
expect(result).to.equal(resultJs);
|
|
82
|
+
// const jsStateTransition = new JsDataContractUpdateTransition(stateTransition.toJSON());
|
|
83
|
+
//
|
|
84
|
+
// const result = stateTransition.hash();
|
|
85
|
+
// const resultJs = jsStateTransition.hash();
|
|
86
|
+
//
|
|
87
|
+
// expect(result).to.equal(resultJs);
|
|
90
88
|
});
|
|
91
89
|
});
|
|
92
90
|
|