@dashevo/wasm-dpp 0.24.0-dev.12 → 0.24.0-dev.14
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/.mocharc.yml +1 -1
- package/Cargo.toml +5 -2
- package/README.md +5 -1
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +9 -0
- package/dist/wasm/wasm_dpp.d.ts +3397 -1237
- package/karma.conf.js +5 -0
- package/lib/identifier/patchIdentifier.ts +5 -4
- package/lib/index.ts +1 -1
- package/lib/test/bootstrap.js +5 -0
- package/lib/test/fixtures/getDataContractFixture.js +267 -0
- package/lib/test/fixtures/getDocumentsFixture.js +43 -0
- package/lib/test/mocks/createStateRepositoryMock.js +64 -0
- package/lib/test/mocks/getBlsAdapterMock.js +51 -0
- package/package.json +11 -8
- package/src/bls_adapter.rs +17 -1
- package/src/buffer.rs +3 -0
- package/src/dash_platform_protocol.rs +107 -10
- package/src/data_contract/data_contract.rs +59 -10
- package/src/data_contract/data_contract_facade.rs +128 -0
- package/src/data_contract/errors/invalid_data_contract.rs +16 -16
- package/src/data_contract/errors/invalid_document_type.rs +8 -8
- package/src/data_contract/errors/mod.rs +10 -16
- package/src/data_contract/index.rs +56 -1
- package/src/data_contract/mod.rs +4 -0
- 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 +41 -10
- package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +35 -4
- package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +1 -1
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +20 -7
- package/src/data_contract/state_transition/data_contract_update_transition/validation.rs +47 -11
- package/src/data_contract_factory/data_contract_factory.rs +19 -17
- package/src/data_trigger/data_trigger_execution_context.rs +95 -0
- package/src/data_trigger/data_trigger_execution_result.rs +48 -0
- package/src/data_trigger/execute_data_triggers_factory.rs +60 -0
- package/src/data_trigger/get_data_triggers_factory.rs +65 -0
- package/src/data_trigger/mod.rs +121 -0
- package/src/document/document_facade.rs +125 -0
- package/src/document/errors/invalid_document_error.rs +10 -9
- package/src/document/errors/invalid_initial_revision_error.rs +1 -1
- package/src/document/errors/mismatch_owners_ids_error.rs +14 -4
- package/src/document/errors/mod.rs +17 -13
- package/src/document/errors/no_documents_supplied_error.rs +4 -4
- package/src/document/factory.rs +257 -0
- package/src/document/fetch_and_validate_data_contract.rs +77 -0
- package/src/document/generate_document_id.rs +17 -0
- package/src/document/mod.rs +311 -37
- package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +22 -0
- package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +253 -1
- package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +60 -1
- package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +263 -0
- package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +302 -3
- package/src/document/state_transition/document_batch_transition/mod.rs +378 -0
- package/src/document/state_transition/document_batch_transition/validation/basic/find_duplicates_by_id.rs +40 -0
- package/src/document/state_transition/document_batch_transition/validation/basic/find_duplicates_by_indices.rs +50 -0
- package/src/document/state_transition/document_batch_transition/validation/basic/mod.rs +8 -0
- package/src/document/state_transition/document_batch_transition/validation/basic/validate_documents_batch_transition_basic.rs +34 -0
- package/src/document/state_transition/document_batch_transition/validation/basic/validate_partial_compound_indices.rs +39 -0
- package/src/document/state_transition/document_batch_transition/validation/mod.rs +2 -0
- package/src/document/state_transition/document_batch_transition/validation/state/fetch_documents.rs +43 -0
- package/src/document/state_transition/document_batch_transition/validation/state/mod.rs +3 -0
- package/src/document/state_transition/document_batch_transition/validation/state/validate_documents_batch_transitions_state.rs +27 -0
- package/src/document/state_transition/document_batch_transition/validation/state/validate_documents_uniqueness_by_indices.rs +47 -0
- package/src/document/validator.rs +52 -0
- package/src/errors/compatible_protocol_version_is_not_defined_error.rs +24 -0
- 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_type_error.rs +15 -1
- package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +16 -2
- 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 +6 -2
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +5 -2
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +3 -3
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +2 -2
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +29 -0
- package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +4 -3
- 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/missing_public_key_error.rs +4 -3
- package/src/errors/consensus/basic/identity/mod.rs +2 -0
- package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -1
- package/src/errors/consensus/basic/json_schema_error.rs +8 -2
- package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -1
- package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +9 -9
- package/src/errors/consensus/state/document/invalid_document_revision_error.rs +4 -4
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +35 -0
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +34 -0
- package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +10 -7
- package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +2 -3
- package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +7 -3
- package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -3
- package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +7 -4
- package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +2 -1
- package/src/errors/consensus/state/identity/mod.rs +4 -0
- package/src/errors/consensus_error.rs +218 -268
- package/src/errors/data_contract_not_present_error.rs +23 -0
- package/src/errors/dpp_error.rs +17 -0
- package/src/errors/from.rs +22 -0
- package/src/errors/js_conversion.rs +52 -5
- package/src/errors/mod.rs +6 -0
- package/src/errors/protocol_error.rs +14 -3
- package/src/identifier/errors.rs +30 -0
- package/src/identifier/mod.rs +95 -11
- package/src/identity/errors/asset_lock_output_not_found_error.rs +11 -0
- package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +20 -0
- package/src/identity/errors/invalid_identity_error.rs +32 -0
- package/src/identity/errors/mod.rs +9 -0
- package/src/identity/errors/unknown_asset_lock_proof_type_error.rs +26 -0
- package/src/identity/factory_utils.rs +87 -0
- package/src/identity/identity_facade.rs +194 -20
- package/src/identity/identity_factory.rs +209 -0
- package/src/identity/identity_public_key/mod.rs +51 -40
- package/src/identity/mod.rs +31 -17
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +132 -0
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +72 -0
- package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +4 -0
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +177 -0
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +72 -0
- package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +4 -0
- package/src/identity/state_transition/asset_lock_proof/mod.rs +269 -0
- package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs +26 -0
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +337 -0
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +153 -0
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_state_validator.rs +37 -0
- package/src/identity/state_transition/identity_create_transition/mod.rs +8 -0
- package/src/identity/state_transition/identity_create_transition/to_object.rs +45 -0
- package/src/identity/state_transition/identity_public_key_transitions.rs +207 -0
- package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs +31 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +278 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +113 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_state_validator.rs +37 -0
- package/src/identity/state_transition/identity_topup_transition/mod.rs +8 -0
- package/src/identity/state_transition/identity_topup_transition/to_object.rs +42 -0
- package/src/identity/state_transition/identity_update_transition/apply_identity_update_transition.rs +24 -0
- package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +55 -0
- package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +448 -0
- package/src/identity/state_transition/identity_update_transition/identity_update_transition_basic_validator.rs +94 -0
- package/src/identity/state_transition/identity_update_transition/identity_update_transition_state_validator.rs +53 -0
- package/src/identity/state_transition/identity_update_transition/mod.rs +9 -0
- package/src/identity/state_transition/identity_update_transition/to_object.rs +66 -0
- package/src/identity/state_transition/mod.rs +12 -0
- package/src/identity/state_transition/validate_public_key_signatures.rs +61 -0
- package/src/identity/validation/identity_validator.rs +50 -0
- package/src/identity/validation/mod.rs +2 -0
- package/src/identity/validation/public_keys_validator.rs +14 -13
- package/src/identity_public_key/public_keys_validator.rs +44 -0
- package/src/lib.rs +6 -0
- package/src/lodash.rs +7 -0
- package/src/metadata.rs +54 -10
- package/src/state_repository.rs +598 -101
- package/src/state_transition/conversion.rs +104 -0
- package/src/state_transition/errors/invalid_state_transition_error.rs +32 -0
- package/src/state_transition/errors/mod.rs +1 -0
- package/src/state_transition/mod.rs +46 -0
- package/src/state_transition/state_transition_facade.rs +263 -0
- package/src/state_transition/state_transition_factory.rs +216 -0
- package/src/state_transition/validation/mod.rs +1 -0
- package/src/state_transition/validation/validate_state_transition_key_signature.rs +62 -0
- package/src/utils.rs +210 -8
- package/src/validation/json_schema_validator.rs +41 -0
- package/src/validation/mod.rs +2 -0
- package/src/validation/validation_result.rs +29 -5
- package/src/version/mod.rs +2 -0
- package/src/version/protocol_version.rs +103 -0
- package/test/integration/dataContract/DataContractFacade.spec.js +46 -30
- package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +45 -127
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +91 -139
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +577 -503
- package/test/integration/document/Document.spec.js +55 -29
- package/test/integration/document/DocumentFacade.spec.js +51 -64
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +38 -16
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +341 -396
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +116 -218
- package/test/integration/document/validation/validateDocumentFactory.spec.js +123 -171
- package/test/integration/identity/IdentityFacade.spec.js +52 -27
- package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +185 -164
- package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +84 -114
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +120 -137
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +106 -91
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +50 -16
- package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +78 -86
- package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +74 -30
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +93 -147
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +65 -77
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +60 -23
- package/test/integration/identity/validation/validateIdentityFactory.spec.js +46 -114
- package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +9 -3
- package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +12 -8
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +95 -233
- package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +53 -0
- package/test/unit/Identifier.spec.js +36 -36
- package/test/unit/Metadata.spec.js +17 -3
- package/test/unit/dataContract/DataContract.spec.js +9 -4
- package/test/unit/dataContract/createDataContract.spec.js +0 -1
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +3 -3
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +2 -2
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +3 -3
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +25 -31
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +3 -3
- package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +2 -0
- package/test/unit/decodeProtocolEntityFactory.spec.js +2 -2
- package/test/unit/document/Document.spec.js +147 -155
- package/test/unit/document/DocumentFactory.spec.js +153 -153
- package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +59 -14
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +131 -62
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +144 -56
- package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +38 -8
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +11 -7
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +29 -18
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +38 -29
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +53 -91
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +357 -493
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +133 -72
- package/test/unit/identity/Identity.spec.js +26 -9
- package/test/unit/identity/IdentityFactory.spec.js +81 -89
- package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +73 -30
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +38 -38
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +34 -25
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +36 -16
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +85 -50
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +24 -6
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +44 -22
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +58 -103
- package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +63 -0
- package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +90 -0
- package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +18 -3
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +38 -11
- package/test/unit/stateTransition/StateTransitionFactory.spec.js +49 -101
- package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +23 -25
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +73 -46
- package/test/unit/version/validateProtocolVersionFactory.spec.js +45 -27
- package/wasm/package.json +5 -0
- package/wasm/wasm_dpp.d.ts +3397 -1237
- package/wasm/wasm_dpp.js +7158 -1384
- package/wasm/wasm_dpp_bg.js +1 -1
- package/wasm/wasm_dpp_bg.wasm +0 -0
- package/wasm/wasm_dpp_bg.wasm.d.ts +777 -389
- package/webpack.config.js +9 -0
- package/src/document/state_transition/document_batch_transition/document_transition/document_update_transition.rs +0 -22
- package/test/integration/stateTransition/calculateStateTransitionFeeFactory.spec.js +0 -135
- package/test/unit/dataContract/errors/InvalidDataContractError.spec.js +0 -54
|
@@ -1,42 +1,34 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
|
-
|
|
3
|
-
const { getRE2Class } = require('@dashevo/wasm-re2');
|
|
4
|
-
|
|
5
|
-
const createAjv = require('@dashevo/dpp/lib/ajv/createAjv');
|
|
6
|
-
|
|
7
|
-
const JsonSchemaValidator = require('@dashevo/dpp/lib/validation/JsonSchemaValidator');
|
|
8
|
-
|
|
9
2
|
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
10
3
|
|
|
11
|
-
const validateDataContractCreateTransitionBasicFactory = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory');
|
|
12
|
-
|
|
13
|
-
const DataContractCreateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition');
|
|
14
|
-
|
|
15
4
|
const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
|
|
5
|
+
const { expectJsonSchemaError, expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
|
|
16
6
|
|
|
17
|
-
const {
|
|
18
|
-
expectValidationError,
|
|
19
|
-
expectJsonSchemaError,
|
|
20
|
-
} = require('@dashevo/dpp/lib/test/expect/expectError');
|
|
21
|
-
|
|
22
|
-
const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
|
|
23
|
-
|
|
24
|
-
const InvalidDataContractIdError = require('@dashevo/dpp/lib/errors/consensus/basic/dataContract/InvalidDataContractIdError');
|
|
25
|
-
const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
|
|
7
|
+
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
26
8
|
|
|
27
9
|
describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
28
|
-
let validateDataContractMock;
|
|
29
|
-
let validateDataContractCreateTransitionBasic;
|
|
30
10
|
let stateTransition;
|
|
31
11
|
let rawStateTransition;
|
|
32
12
|
let dataContract;
|
|
33
13
|
let rawDataContract;
|
|
34
|
-
let validateProtocolVersionMock;
|
|
35
14
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
15
|
+
let DataContractCreateTransition;
|
|
16
|
+
let validateDataContractCreateTransitionBasic;
|
|
17
|
+
let ValidationResult;
|
|
18
|
+
let ProtocolVersionParsingError;
|
|
19
|
+
let InvalidDataContractIdError;
|
|
20
|
+
|
|
21
|
+
before(async () => {
|
|
22
|
+
({
|
|
23
|
+
DataContractCreateTransition,
|
|
24
|
+
validateDataContractCreateTransitionBasic,
|
|
25
|
+
ValidationResult,
|
|
26
|
+
ProtocolVersionParsingError,
|
|
27
|
+
InvalidDataContractIdError,
|
|
28
|
+
} = await loadWasmDpp());
|
|
29
|
+
});
|
|
39
30
|
|
|
31
|
+
beforeEach(async () => {
|
|
40
32
|
dataContract = getDataContractFixture();
|
|
41
33
|
rawDataContract = dataContract.toObject();
|
|
42
34
|
|
|
@@ -49,18 +41,6 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
49
41
|
});
|
|
50
42
|
|
|
51
43
|
rawStateTransition = stateTransition.toObject();
|
|
52
|
-
|
|
53
|
-
const RE2 = await getRE2Class();
|
|
54
|
-
const ajv = createAjv(RE2);
|
|
55
|
-
|
|
56
|
-
const jsonSchemaValidator = new JsonSchemaValidator(ajv);
|
|
57
|
-
|
|
58
|
-
// eslint-disable-next-line max-len
|
|
59
|
-
validateDataContractCreateTransitionBasic = validateDataContractCreateTransitionBasicFactory(
|
|
60
|
-
jsonSchemaValidator,
|
|
61
|
-
validateDataContractMock,
|
|
62
|
-
validateProtocolVersionMock,
|
|
63
|
-
);
|
|
64
44
|
});
|
|
65
45
|
|
|
66
46
|
describe('protocolVersion', () => {
|
|
@@ -69,7 +49,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
69
49
|
|
|
70
50
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
71
51
|
|
|
72
|
-
expectJsonSchemaError(result);
|
|
52
|
+
await expectJsonSchemaError(result);
|
|
73
53
|
|
|
74
54
|
const [error] = result.getErrors();
|
|
75
55
|
|
|
@@ -83,7 +63,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
83
63
|
|
|
84
64
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
85
65
|
|
|
86
|
-
expectJsonSchemaError(result);
|
|
66
|
+
await expectJsonSchemaError(result);
|
|
87
67
|
|
|
88
68
|
const [error] = result.getErrors();
|
|
89
69
|
|
|
@@ -94,24 +74,10 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
94
74
|
it('should be valid', async () => {
|
|
95
75
|
rawStateTransition.protocolVersion = -1;
|
|
96
76
|
|
|
97
|
-
const protocolVersionError = new SomeConsensusError('test');
|
|
98
|
-
const protocolVersionResult = new ValidationResult([
|
|
99
|
-
protocolVersionError,
|
|
100
|
-
]);
|
|
101
|
-
|
|
102
|
-
validateProtocolVersionMock.returns(protocolVersionResult);
|
|
103
|
-
|
|
104
77
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
105
78
|
|
|
106
|
-
expectValidationError(result, SomeConsensusError);
|
|
107
|
-
|
|
108
79
|
const [error] = result.getErrors();
|
|
109
|
-
|
|
110
|
-
expect(error).to.equal(protocolVersionError);
|
|
111
|
-
|
|
112
|
-
expect(validateProtocolVersionMock).to.be.calledOnceWith(
|
|
113
|
-
rawStateTransition.protocolVersion,
|
|
114
|
-
);
|
|
80
|
+
expect(error).to.be.an.instanceOf(ProtocolVersionParsingError);
|
|
115
81
|
});
|
|
116
82
|
});
|
|
117
83
|
|
|
@@ -121,7 +87,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
121
87
|
|
|
122
88
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
123
89
|
|
|
124
|
-
expectJsonSchemaError(result);
|
|
90
|
+
await expectJsonSchemaError(result);
|
|
125
91
|
|
|
126
92
|
const [error] = result.getErrors();
|
|
127
93
|
|
|
@@ -135,7 +101,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
135
101
|
|
|
136
102
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
137
103
|
|
|
138
|
-
expectJsonSchemaError(result);
|
|
104
|
+
await expectJsonSchemaError(result);
|
|
139
105
|
|
|
140
106
|
const [error] = result.getErrors();
|
|
141
107
|
|
|
@@ -151,7 +117,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
151
117
|
|
|
152
118
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
153
119
|
|
|
154
|
-
expectJsonSchemaError(result);
|
|
120
|
+
await expectJsonSchemaError(result);
|
|
155
121
|
|
|
156
122
|
const [error] = result.getErrors();
|
|
157
123
|
|
|
@@ -161,42 +127,26 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
161
127
|
});
|
|
162
128
|
|
|
163
129
|
it('should be valid', async () => {
|
|
164
|
-
const dataContractError = new SomeConsensusError('test');
|
|
165
|
-
const dataContractResult = new ValidationResult([
|
|
166
|
-
dataContractError,
|
|
167
|
-
]);
|
|
168
|
-
|
|
169
|
-
validateDataContractMock.returns(dataContractResult);
|
|
170
|
-
|
|
171
130
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
172
131
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
const [error] = result.getErrors();
|
|
176
|
-
|
|
177
|
-
expect(error).to.equal(dataContractError);
|
|
178
|
-
|
|
179
|
-
expect(validateDataContractMock.getCall(0).args).to.have.deep.members([rawDataContract]);
|
|
132
|
+
expect(result).to.be.an.instanceOf(ValidationResult);
|
|
133
|
+
expect(result.isValid()).to.be.true();
|
|
180
134
|
});
|
|
181
135
|
|
|
182
136
|
it('should return invalid result on invalid Data Contract id', async () => {
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
validateDataContractMock.returns(dataContractResult);
|
|
186
|
-
|
|
187
|
-
const expectedId = rawStateTransition.dataContract.$id;
|
|
188
|
-
rawStateTransition.dataContract.$id = crypto.randomBytes(34);
|
|
137
|
+
const expectedId = Buffer.from(rawStateTransition.dataContract.$id);
|
|
138
|
+
rawStateTransition.dataContract.$id = Buffer.from(crypto.randomBytes(32));
|
|
189
139
|
|
|
190
140
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
191
141
|
|
|
192
|
-
expectValidationError(result);
|
|
142
|
+
await expectValidationError(result);
|
|
193
143
|
|
|
194
144
|
const [error] = result.getErrors();
|
|
195
145
|
|
|
196
|
-
expect(error).to.
|
|
146
|
+
expect(error.getCode()).to.equal(1011);
|
|
197
147
|
expect(error.getExpectedId()).to.deep.equal(expectedId);
|
|
198
148
|
expect(error.getInvalidId()).to.deep.equal(rawStateTransition.dataContract.$id);
|
|
199
|
-
expect(error
|
|
149
|
+
expect(error).to.be.an.instanceOf(InvalidDataContractIdError);
|
|
200
150
|
});
|
|
201
151
|
});
|
|
202
152
|
|
|
@@ -206,7 +156,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
206
156
|
|
|
207
157
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
208
158
|
|
|
209
|
-
expectJsonSchemaError(result);
|
|
159
|
+
await expectJsonSchemaError(result);
|
|
210
160
|
|
|
211
161
|
const [error] = result.getErrors();
|
|
212
162
|
|
|
@@ -215,33 +165,18 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
215
165
|
expect(error.getParams().missingProperty).to.equal('entropy');
|
|
216
166
|
});
|
|
217
167
|
|
|
218
|
-
it('should be a byte array', async () => {
|
|
219
|
-
rawStateTransition.entropy = new Array(32).fill('string');
|
|
220
|
-
|
|
221
|
-
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
222
|
-
|
|
223
|
-
expectJsonSchemaError(result, 2);
|
|
224
|
-
|
|
225
|
-
const [error, byteArrayError] = result.getErrors();
|
|
226
|
-
|
|
227
|
-
expect(error.getInstancePath()).to.equal('/entropy/0');
|
|
228
|
-
expect(error.getKeyword()).to.equal('type');
|
|
229
|
-
|
|
230
|
-
expect(byteArrayError.getKeyword()).to.equal('byteArray');
|
|
231
|
-
});
|
|
232
|
-
|
|
233
168
|
it('should be no less than 32 bytes', async () => {
|
|
234
169
|
rawStateTransition.entropy = Buffer.alloc(31);
|
|
235
170
|
|
|
236
171
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
237
172
|
|
|
238
|
-
expectJsonSchemaError(result);
|
|
173
|
+
await expectJsonSchemaError(result);
|
|
239
174
|
|
|
240
175
|
const [error] = result.getErrors();
|
|
241
176
|
|
|
242
177
|
expect(error.getInstancePath()).to.equal('/entropy');
|
|
243
178
|
expect(error.getKeyword()).to.equal('minItems');
|
|
244
|
-
expect(error.getParams().
|
|
179
|
+
expect(error.getParams().minItems).to.equal(32);
|
|
245
180
|
});
|
|
246
181
|
|
|
247
182
|
it('should be no longer than 32 bytes', async () => {
|
|
@@ -249,13 +184,13 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
249
184
|
|
|
250
185
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
251
186
|
|
|
252
|
-
expectJsonSchemaError(result);
|
|
187
|
+
await expectJsonSchemaError(result);
|
|
253
188
|
|
|
254
189
|
const [error] = result.getErrors();
|
|
255
190
|
|
|
256
191
|
expect(error.getInstancePath()).to.equal('/entropy');
|
|
257
192
|
expect(error.getKeyword()).to.equal('maxItems');
|
|
258
|
-
expect(error.getParams().
|
|
193
|
+
expect(error.getParams().maxItems).to.equal(32);
|
|
259
194
|
});
|
|
260
195
|
});
|
|
261
196
|
|
|
@@ -265,7 +200,7 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
265
200
|
|
|
266
201
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
267
202
|
|
|
268
|
-
expectJsonSchemaError(result);
|
|
203
|
+
await expectJsonSchemaError(result);
|
|
269
204
|
|
|
270
205
|
const [error] = result.getErrors();
|
|
271
206
|
|
|
@@ -274,33 +209,18 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
274
209
|
expect(error.getParams().missingProperty).to.equal('signature');
|
|
275
210
|
});
|
|
276
211
|
|
|
277
|
-
it('should be a byte array', async () => {
|
|
278
|
-
rawStateTransition.signature = new Array(65).fill('string');
|
|
279
|
-
|
|
280
|
-
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
281
|
-
|
|
282
|
-
expectJsonSchemaError(result, 2);
|
|
283
|
-
|
|
284
|
-
const [error, byteArrayError] = result.getErrors();
|
|
285
|
-
|
|
286
|
-
expect(error.getInstancePath()).to.equal('/signature/0');
|
|
287
|
-
expect(error.getKeyword()).to.equal('type');
|
|
288
|
-
|
|
289
|
-
expect(byteArrayError.getKeyword()).to.equal('byteArray');
|
|
290
|
-
});
|
|
291
|
-
|
|
292
212
|
it('should be not less than 65 bytes', async () => {
|
|
293
213
|
rawStateTransition.signature = Buffer.alloc(64);
|
|
294
214
|
|
|
295
215
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
296
216
|
|
|
297
|
-
expectJsonSchemaError(result);
|
|
217
|
+
await expectJsonSchemaError(result);
|
|
298
218
|
|
|
299
219
|
const [error] = result.getErrors();
|
|
300
220
|
|
|
301
221
|
expect(error.getInstancePath()).to.equal('/signature');
|
|
302
222
|
expect(error.getKeyword()).to.equal('minItems');
|
|
303
|
-
expect(error.getParams().
|
|
223
|
+
expect(error.getParams().minItems).to.equal(65);
|
|
304
224
|
});
|
|
305
225
|
|
|
306
226
|
it('should be not longer than 96 bytes', async () => {
|
|
@@ -308,13 +228,13 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
308
228
|
|
|
309
229
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
310
230
|
|
|
311
|
-
expectJsonSchemaError(result);
|
|
231
|
+
await expectJsonSchemaError(result);
|
|
312
232
|
|
|
313
233
|
const [error] = result.getErrors();
|
|
314
234
|
|
|
315
235
|
expect(error.getInstancePath()).to.equal('/signature');
|
|
316
236
|
expect(error.getKeyword()).to.equal('maxItems');
|
|
317
|
-
expect(error.getParams().
|
|
237
|
+
expect(error.getParams().maxItems).to.equal(96);
|
|
318
238
|
});
|
|
319
239
|
});
|
|
320
240
|
|
|
@@ -324,11 +244,11 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
324
244
|
|
|
325
245
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
326
246
|
|
|
327
|
-
expectJsonSchemaError(result, 1);
|
|
247
|
+
await expectJsonSchemaError(result, 1);
|
|
328
248
|
|
|
329
249
|
const [error] = result.getErrors();
|
|
330
250
|
|
|
331
|
-
expect(error.
|
|
251
|
+
expect(error.getInstancePath()).to.equal('/signaturePublicKeyId');
|
|
332
252
|
expect(error.getKeyword()).to.equal('type');
|
|
333
253
|
});
|
|
334
254
|
|
|
@@ -337,11 +257,11 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
337
257
|
|
|
338
258
|
const result = await validateDataContractCreateTransitionBasic(rawStateTransition);
|
|
339
259
|
|
|
340
|
-
expectJsonSchemaError(result, 1);
|
|
260
|
+
await expectJsonSchemaError(result, 1);
|
|
341
261
|
|
|
342
262
|
const [error] = result.getErrors();
|
|
343
263
|
|
|
344
|
-
expect(error.
|
|
264
|
+
expect(error.getInstancePath()).to.equal('/signaturePublicKeyId');
|
|
345
265
|
expect(error.getKeyword()).to.equal('minimum');
|
|
346
266
|
});
|
|
347
267
|
});
|
|
@@ -351,7 +271,5 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
351
271
|
|
|
352
272
|
expect(result).to.be.an.instanceOf(ValidationResult);
|
|
353
273
|
expect(result.isValid()).to.be.true();
|
|
354
|
-
|
|
355
|
-
expect(validateDataContractMock).to.be.calledOnceWith(rawDataContract);
|
|
356
274
|
});
|
|
357
275
|
});
|