@dashevo/wasm-dpp 0.25.0-dev.8 → 0.25.0
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 +33 -7
- package/README.md +11 -6
- package/dist/errors/patchConsensusErrors.js +94 -115
- package/dist/wasm/wasm_dpp.d.ts +2213 -4113
- package/dist/wasm/wasm_dpp.js +17748 -2639
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/dpp.ts +1 -1
- package/lib/errors/patchConsensusErrors.ts +94 -93
- package/lib/test/bootstrap.js +5 -0
- package/lib/test/fixtures/getDataContractFixture.js +11 -5
- package/lib/test/fixtures/getDocumentsFixture.js +9 -5
- package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
- package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
- package/lib/test/fixtures/getIdentityFixture.js +21 -32
- package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
- package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
- package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
- package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
- package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
- package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
- package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
- package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
- package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
- package/lib/test/mocks/createStateRepositoryMock.js +1 -0
- package/lib/wasm/wasm_dpp.d.ts +2213 -4113
- package/package.json +6 -6
- package/scripts/build-wasm.sh +30 -29
- package/src/bls_adapter.rs +1 -1
- package/src/dash_platform_protocol.rs +173 -196
- package/src/data_contract/data_contract.rs +309 -199
- package/src/data_contract/data_contract_facade.rs +28 -47
- package/src/data_contract/errors/mod.rs +1 -0
- package/src/data_contract/mod.rs +2 -2
- package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
- package/src/data_contract_factory/data_contract_factory.rs +43 -83
- package/src/document/document_facade.rs +81 -76
- package/src/document/errors/document_already_exists_error.rs +6 -6
- package/src/document/errors/document_no_revision_error.rs +1 -0
- package/src/document/errors/document_not_provided_error.rs +6 -6
- package/src/document/errors/invalid_document_action_error.rs +11 -7
- package/src/document/errors/invalid_initial_revision_error.rs +4 -4
- package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
- package/src/document/errors/mod.rs +5 -0
- package/src/document/errors/revision_absent_error.rs +6 -6
- package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
- package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
- package/src/document/extended_document.rs +76 -76
- package/src/document/factory.rs +140 -119
- package/src/document/generate_document_id.rs +2 -2
- package/src/document/mod.rs +164 -150
- package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
- package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
- package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
- package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
- package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
- package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
- package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
- package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
- package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
- package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
- package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
- package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
- package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
- package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
- package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
- package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
- package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
- package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
- package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
- package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
- package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
- package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
- package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
- package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
- package/src/errors/consensus/basic/json_schema_error.rs +1 -9
- package/src/errors/consensus/basic/mod.rs +2 -0
- package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
- package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
- package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
- package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
- package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
- package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
- package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
- package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
- package/src/errors/consensus/consensus_error.rs +44 -21
- package/src/errors/consensus/deserialize.rs +2 -1
- package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
- package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
- package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
- package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
- package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
- package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
- package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
- package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
- package/src/errors/consensus/state/data_contract/mod.rs +7 -1
- package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
- package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
- package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
- package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
- package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
- package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
- package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
- package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
- package/src/errors/consensus/state/document/mod.rs +2 -0
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
- package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
- package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
- package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
- package/src/errors/consensus/value_error.rs +1 -9
- package/src/errors/from.rs +12 -8
- package/src/errors/mod.rs +7 -7
- package/src/errors/value_error.rs +5 -0
- package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
- package/src/identity/factory_utils.rs +13 -13
- package/src/identity/identity.rs +275 -0
- package/src/identity/identity_facade.rs +87 -70
- package/src/identity/identity_factory.rs +74 -54
- package/src/identity/identity_public_key/mod.rs +87 -64
- package/src/identity/mod.rs +25 -247
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
- package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +2 -2
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
- package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
- package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +71 -65
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
- package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
- package/src/identity/state_transition/identity_create_transition/to_object.rs +10 -12
- package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
- package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +67 -62
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
- package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
- package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
- 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 +99 -104
- package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
- package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
- package/src/identity/state_transition/mod.rs +5 -2
- package/src/identity/state_transition/transition_types.rs +34 -0
- package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
- package/src/lib.rs +10 -11
- package/src/metadata.rs +3 -3
- package/src/protocol_version.rs +7 -0
- package/src/state_transition/conversion.rs +11 -1
- package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
- package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
- package/src/state_transition/mod.rs +137 -139
- package/src/state_transition/state_transition_facade.rs +11 -11
- package/src/state_transition/state_transition_factory.rs +142 -153
- package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
- package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
- package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
- package/src/utils.rs +7 -8
- package/src/validation/validation_result.rs +1 -0
- package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
- package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
- package/test/integration/document/Document.spec.js +3 -3
- package/test/integration/document/DocumentFacade.spec.js +39 -38
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +6 -7
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +2 -2
- package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
- package/test/integration/identity/IdentityFacade.spec.js +33 -62
- package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
- package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
- package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
- package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +4 -5
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +3 -7
- package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
- package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
- package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
- package/test/unit/DashPlatformProtocol.spec.js +10 -25
- package/test/unit/dataContract/DataContract.spec.js +119 -148
- package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
- package/test/unit/dataContract/createDataContract.spec.js +6 -6
- package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +7 -9
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +28 -19
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +7 -7
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
- package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
- package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +1 -1
- package/test/unit/document/Document.spec.js +31 -20
- package/test/unit/document/DocumentFactory.spec.js +45 -110
- package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +6 -7
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +11 -12
- package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +9 -9
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
- package/test/unit/identity/Identity.spec.js +46 -81
- package/test/unit/identity/IdentityFactory.spec.js +61 -75
- package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
- package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +9 -15
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +9 -13
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +4 -4
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
- package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
- package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
- package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
- package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
- package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
- package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
- package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
- package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
- package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
- package/test-d/index.test-d.ts +2 -2
- package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
- package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
- package/src/decode_protocol_entity.rs +0 -25
- package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
- package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
- package/test/integration/util/generateEntropy.spec.js +0 -17
- package/test/integration/util/serializer.spec.js +0 -24
- package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
- package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
- package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const generateRandomIdentifier = require('
|
|
1
|
+
const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
2
2
|
|
|
3
|
-
const { default: loadWasmDpp } = require('
|
|
3
|
+
const { default: loadWasmDpp } = require('../../..');
|
|
4
4
|
|
|
5
|
-
describe('createDataContract', () => {
|
|
5
|
+
describe.skip('createDataContract', () => {
|
|
6
6
|
let rawDataContract;
|
|
7
7
|
let DataContract;
|
|
8
8
|
|
|
@@ -12,10 +12,10 @@ describe('createDataContract', () => {
|
|
|
12
12
|
} = await loadWasmDpp());
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
beforeEach(() => {
|
|
15
|
+
beforeEach(async () => {
|
|
16
16
|
rawDataContract = {
|
|
17
|
-
$id: generateRandomIdentifier().toBuffer(),
|
|
18
|
-
ownerId: generateRandomIdentifier().toBuffer(),
|
|
17
|
+
$id: (await generateRandomIdentifier()).toBuffer(),
|
|
18
|
+
ownerId: (await generateRandomIdentifier()).toBuffer(),
|
|
19
19
|
protocolVersion: 4,
|
|
20
20
|
version: 20,
|
|
21
21
|
$schema: 'http://test.com/schema',
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
6
|
-
|
|
7
|
-
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
1
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
2
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
3
|
+
const { StateTransitionTypes } = require('../../../../..');
|
|
8
4
|
|
|
9
5
|
describe('DataContractCreateTransition', () => {
|
|
10
6
|
let stateTransition;
|
|
@@ -18,29 +14,29 @@ describe('DataContractCreateTransition', () => {
|
|
|
18
14
|
} = await loadWasmDpp());
|
|
19
15
|
});
|
|
20
16
|
|
|
21
|
-
beforeEach(() => {
|
|
22
|
-
dataContract = getDataContractFixture();
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
dataContract = await getDataContractFixture();
|
|
23
19
|
|
|
24
20
|
stateTransition = new DataContractCreateTransition({
|
|
25
|
-
protocolVersion:
|
|
21
|
+
protocolVersion: 1,
|
|
26
22
|
dataContract: dataContract.toObject(),
|
|
27
23
|
entropy: dataContract.getEntropy(),
|
|
28
24
|
});
|
|
29
25
|
});
|
|
30
|
-
|
|
31
|
-
describe('#getProtocolVersion', () => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
26
|
+
//
|
|
27
|
+
// describe('#getProtocolVersion', () => {
|
|
28
|
+
// it('should return the current protocol version', () => {
|
|
29
|
+
// const result = stateTransition.getProtocolVersion();
|
|
30
|
+
//
|
|
31
|
+
// expect(result).to.equal(getLatestProtocolVersion());
|
|
32
|
+
// });
|
|
33
|
+
// });
|
|
38
34
|
|
|
39
35
|
describe('#getType', () => {
|
|
40
36
|
it('should return State Transition type', () => {
|
|
41
37
|
const result = stateTransition.getType();
|
|
42
38
|
|
|
43
|
-
expect(result).to.equal(
|
|
39
|
+
expect(result).to.equal(StateTransitionTypes.DataContractCreate);
|
|
44
40
|
});
|
|
45
41
|
});
|
|
46
42
|
|
|
@@ -52,12 +48,15 @@ describe('DataContractCreateTransition', () => {
|
|
|
52
48
|
});
|
|
53
49
|
});
|
|
54
50
|
|
|
55
|
-
describe('#toJSON', () => {
|
|
51
|
+
describe.skip('#toJSON', () => {
|
|
56
52
|
it('should return State Transition as plain JS object', () => {
|
|
53
|
+
const dc = dataContract.toJSON();
|
|
54
|
+
delete dc.$defs;
|
|
55
|
+
|
|
57
56
|
expect(stateTransition.toJSON(true)).to.deep.equal({
|
|
58
|
-
protocolVersion:
|
|
59
|
-
type:
|
|
60
|
-
dataContract:
|
|
57
|
+
protocolVersion: 1,
|
|
58
|
+
type: StateTransitionTypes.DataContractCreate,
|
|
59
|
+
dataContract: dc,
|
|
61
60
|
entropy: dataContract.getEntropy().toString('base64'),
|
|
62
61
|
});
|
|
63
62
|
});
|
|
@@ -65,10 +64,19 @@ describe('DataContractCreateTransition', () => {
|
|
|
65
64
|
|
|
66
65
|
describe('#toBuffer', () => {
|
|
67
66
|
it('should return serialized State Transition', () => {
|
|
68
|
-
const protocolVersionBytes = Buffer.from(varint.encode(stateTransition.getProtocolVersion()));
|
|
69
|
-
|
|
70
67
|
const result = stateTransition.toBuffer();
|
|
71
|
-
expect(result
|
|
68
|
+
expect(result).to.be.instanceOf(Buffer);
|
|
69
|
+
expect(result).to.have.lengthOf(2220);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('should be able to restore contract config from bytes', () => {
|
|
73
|
+
const config = stateTransition.getDataContract().getConfig();
|
|
74
|
+
config.keepsHistory = true;
|
|
75
|
+
// stateTransition.setDataContractConfig(config);
|
|
76
|
+
expect(stateTransition.getDataContract().getConfig().keepsHistory).to.be.true();
|
|
77
|
+
const buffer = stateTransition.toBuffer();
|
|
78
|
+
const restoredSt = DataContractCreateTransition.fromBuffer(buffer);
|
|
79
|
+
expect(restoredSt.getDataContract().getConfig().keepsHistory).to.be.true();
|
|
72
80
|
});
|
|
73
81
|
});
|
|
74
82
|
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
1
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
2
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
3
|
+
const { getLatestProtocolVersion } = require('../../../../..');
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
6
|
-
|
|
7
|
-
describe('applyDataContractCreateTransitionFactory', () => {
|
|
5
|
+
describe.skip('applyDataContractCreateTransitionFactory', () => {
|
|
8
6
|
let stateTransition;
|
|
9
7
|
let dataContract;
|
|
10
8
|
let factory;
|
|
@@ -20,11 +18,11 @@ describe('applyDataContractCreateTransitionFactory', () => {
|
|
|
20
18
|
} = await loadWasmDpp());
|
|
21
19
|
});
|
|
22
20
|
|
|
23
|
-
beforeEach(() => {
|
|
24
|
-
dataContract = getDataContractFixture();
|
|
21
|
+
beforeEach(async () => {
|
|
22
|
+
dataContract = await getDataContractFixture();
|
|
25
23
|
|
|
26
24
|
stateTransition = new DataContractCreateTransition({
|
|
27
|
-
protocolVersion:
|
|
25
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
28
26
|
dataContract: dataContract.toObject(),
|
|
29
27
|
entropy: Buffer.alloc(32),
|
|
30
28
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
2
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
1
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
|
|
3
2
|
|
|
4
|
-
const { default: loadWasmDpp } = require('
|
|
3
|
+
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
4
|
+
const { getLatestProtocolVersion } = require('../../../../../../..');
|
|
5
5
|
|
|
6
|
-
describe('validateDataContractCreateTransitionStateFactory', () => {
|
|
6
|
+
describe.skip('validateDataContractCreateTransitionStateFactory', () => {
|
|
7
7
|
let validateDataContractCreateTransitionState;
|
|
8
8
|
let dataContract;
|
|
9
9
|
let stateTransition;
|
|
@@ -27,10 +27,10 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
|
|
|
27
27
|
} = await loadWasmDpp());
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
dataContract = getDataContractFixture();
|
|
30
|
+
beforeEach(async () => {
|
|
31
|
+
dataContract = await getDataContractFixture();
|
|
32
32
|
stateTransition = new DataContractCreateTransition({
|
|
33
|
-
protocolVersion:
|
|
33
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
34
34
|
dataContract: dataContract.toObject(),
|
|
35
35
|
entropy: dataContract.getEntropy(),
|
|
36
36
|
});
|
|
@@ -54,10 +54,11 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
|
|
|
54
54
|
// This time our state repository should return a data contract on fetch
|
|
55
55
|
const validator = new DataContractValidator();
|
|
56
56
|
const dataContractFactory = new DataContractFactory(1, validator);
|
|
57
|
-
const
|
|
57
|
+
const reCreatedDataContract = await dataContractFactory
|
|
58
|
+
.createFromBuffer(dataContract.toBuffer());
|
|
58
59
|
|
|
59
60
|
const stateRepositoryLikeWithContract = {
|
|
60
|
-
fetchDataContract: async () =>
|
|
61
|
+
fetchDataContract: async () => reCreatedDataContract,
|
|
61
62
|
};
|
|
62
63
|
|
|
63
64
|
const result = await validateDataContractCreateTransitionState(
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
const varint = require('varint');
|
|
2
|
-
const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
|
|
3
|
-
const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
|
|
4
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
5
1
|
const JsDataContractUpdateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition');
|
|
6
2
|
|
|
7
|
-
const
|
|
3
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
4
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
5
|
+
const { StateTransitionTypes } = require('../../../../..');
|
|
8
6
|
|
|
9
7
|
describe('DataContractUpdateTransition', () => {
|
|
10
8
|
let stateTransition;
|
|
@@ -18,20 +16,20 @@ describe('DataContractUpdateTransition', () => {
|
|
|
18
16
|
} = await loadWasmDpp());
|
|
19
17
|
});
|
|
20
18
|
|
|
21
|
-
beforeEach(() => {
|
|
22
|
-
dataContract = getDataContractFixture();
|
|
19
|
+
beforeEach(async () => {
|
|
20
|
+
dataContract = await getDataContractFixture();
|
|
23
21
|
|
|
24
22
|
stateTransition = new DataContractUpdateTransition({
|
|
25
|
-
protocolVersion:
|
|
23
|
+
protocolVersion: 1,
|
|
26
24
|
dataContract: dataContract.toObject(),
|
|
27
25
|
});
|
|
28
26
|
});
|
|
29
27
|
|
|
30
|
-
describe('#getProtocolVersion', () => {
|
|
28
|
+
describe.skip('#getProtocolVersion', () => {
|
|
31
29
|
it('should return the current protocol version', () => {
|
|
32
30
|
const result = stateTransition.getProtocolVersion();
|
|
33
31
|
|
|
34
|
-
expect(result).to.equal(
|
|
32
|
+
expect(result).to.equal(1);
|
|
35
33
|
});
|
|
36
34
|
});
|
|
37
35
|
|
|
@@ -39,7 +37,7 @@ describe('DataContractUpdateTransition', () => {
|
|
|
39
37
|
it('should return State Transition type', () => {
|
|
40
38
|
const result = stateTransition.getType();
|
|
41
39
|
|
|
42
|
-
expect(result).to.equal(
|
|
40
|
+
expect(result).to.equal(StateTransitionTypes.DataContractUpdate);
|
|
43
41
|
});
|
|
44
42
|
});
|
|
45
43
|
|
|
@@ -51,22 +49,33 @@ describe('DataContractUpdateTransition', () => {
|
|
|
51
49
|
});
|
|
52
50
|
});
|
|
53
51
|
|
|
54
|
-
describe('#toJSON', () => {
|
|
52
|
+
describe.skip('#toJSON', () => {
|
|
55
53
|
it('should return State Transition as plain JS object', () => {
|
|
54
|
+
const dc = dataContract.toJSON();
|
|
55
|
+
delete dc.$defs;
|
|
56
|
+
|
|
56
57
|
expect(stateTransition.toJSON(true)).to.deep.equal({
|
|
57
|
-
protocolVersion:
|
|
58
|
-
type:
|
|
59
|
-
dataContract:
|
|
58
|
+
protocolVersion: 1,
|
|
59
|
+
type: StateTransitionTypes.DataContractUpdate,
|
|
60
|
+
dataContract: dc,
|
|
60
61
|
});
|
|
61
62
|
});
|
|
62
63
|
});
|
|
63
64
|
|
|
64
65
|
describe('#toBuffer', () => {
|
|
65
|
-
it('should return serialized State Transition
|
|
66
|
-
const protocolVersionBytes = Buffer.from(varint.encode(stateTransition.getProtocolVersion()));
|
|
67
|
-
|
|
66
|
+
it('should return serialized State Transition', () => {
|
|
68
67
|
const result = stateTransition.toBuffer();
|
|
69
|
-
expect(result
|
|
68
|
+
expect(result).to.be.instanceOf(Buffer);
|
|
69
|
+
expect(result).to.have.lengthOf(2188);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('should be able to restore contract config from bytes', () => {
|
|
73
|
+
const config = stateTransition.getDataContract().getConfig();
|
|
74
|
+
config.keepsHistory = true;
|
|
75
|
+
expect(stateTransition.getDataContract().getConfig().keepsHistory).to.be.true();
|
|
76
|
+
const buffer = stateTransition.toBuffer();
|
|
77
|
+
const restoredSt = DataContractUpdateTransition.fromBuffer(buffer);
|
|
78
|
+
expect(restoredSt.getDataContract().getConfig().keepsHistory).to.be.true();
|
|
70
79
|
});
|
|
71
80
|
});
|
|
72
81
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
2
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
1
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
3
2
|
|
|
4
|
-
const { default: loadWasmDpp } = require('
|
|
3
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
4
|
+
const { getLatestProtocolVersion } = require('../../../../..');
|
|
5
5
|
|
|
6
|
-
describe('applyDataContractUpdateTransitionFactory', () => {
|
|
6
|
+
describe.skip('applyDataContractUpdateTransitionFactory', () => {
|
|
7
7
|
let stateTransition;
|
|
8
8
|
let dataContract;
|
|
9
9
|
let executionContext;
|
|
@@ -21,12 +21,12 @@ describe('applyDataContractUpdateTransitionFactory', () => {
|
|
|
21
21
|
} = await loadWasmDpp());
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
beforeEach(() => {
|
|
25
|
-
dataContract = getDataContractFixture();
|
|
24
|
+
beforeEach(async () => {
|
|
25
|
+
dataContract = await getDataContractFixture();
|
|
26
26
|
|
|
27
27
|
stateTransition = new DataContractUpdateTransition({
|
|
28
28
|
dataContract: dataContract.toObject(),
|
|
29
|
-
protocolVersion:
|
|
29
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
executionContext = new StateTransitionExecutionContext();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
1
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
|
|
2
2
|
|
|
3
3
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
4
4
|
|
|
5
|
-
describe('validateIndicesAreBackwardCompatible', () => {
|
|
5
|
+
describe.skip('validateIndicesAreBackwardCompatible', () => {
|
|
6
6
|
let oldDocumentsSchema;
|
|
7
7
|
let newDocumentsSchema;
|
|
8
8
|
let validateIndicesAreBackwardCompatible;
|
|
@@ -19,9 +19,9 @@ describe('validateIndicesAreBackwardCompatible', () => {
|
|
|
19
19
|
} = await loadWasmDpp());
|
|
20
20
|
});
|
|
21
21
|
|
|
22
|
-
beforeEach(() => {
|
|
23
|
-
const oldDataContract = getDataContractFixture();
|
|
24
|
-
const newDataContract = getDataContractFixture();
|
|
22
|
+
beforeEach(async () => {
|
|
23
|
+
const oldDataContract = await getDataContractFixture();
|
|
24
|
+
const newDataContract = await getDataContractFixture();
|
|
25
25
|
|
|
26
26
|
oldDocumentsSchema = oldDataContract.getDocuments();
|
|
27
27
|
newDocumentsSchema = newDataContract.getDocuments();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
2
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
1
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
|
|
3
2
|
|
|
4
|
-
const { default: loadWasmDpp } = require('
|
|
3
|
+
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
4
|
+
const { getLatestProtocolVersion } = require('../../../../../../..');
|
|
5
5
|
|
|
6
|
-
describe('validateDataContractUpdateTransitionStateFactory', () => {
|
|
6
|
+
describe.skip('validateDataContractUpdateTransitionStateFactory', () => {
|
|
7
7
|
let validateDataContractUpdateTransitionState;
|
|
8
8
|
let dataContract;
|
|
9
9
|
let stateTransition;
|
|
@@ -31,7 +31,7 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
|
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
beforeEach(async () => {
|
|
34
|
-
dataContract = getDataContractFixture();
|
|
34
|
+
dataContract = await getDataContractFixture();
|
|
35
35
|
|
|
36
36
|
const updatedRawDataContract = dataContract.toObject();
|
|
37
37
|
|
|
@@ -39,17 +39,18 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
|
|
|
39
39
|
|
|
40
40
|
stateTransition = new DataContractUpdateTransition({
|
|
41
41
|
dataContract: updatedRawDataContract,
|
|
42
|
-
protocolVersion:
|
|
42
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
executionContext = new StateTransitionExecutionContext();
|
|
46
46
|
|
|
47
47
|
const validator = new DataContractValidator();
|
|
48
|
-
const dataContractFactory = new DataContractFactory(
|
|
49
|
-
const
|
|
48
|
+
const dataContractFactory = new DataContractFactory(getLatestProtocolVersion(), validator);
|
|
49
|
+
const reCreatedDataContract = await dataContractFactory
|
|
50
|
+
.createFromBuffer(dataContract.toBuffer());
|
|
50
51
|
|
|
51
52
|
const stateRepositoryLike = {
|
|
52
|
-
fetchDataContract: async () =>
|
|
53
|
+
fetchDataContract: async () => reCreatedDataContract,
|
|
53
54
|
};
|
|
54
55
|
|
|
55
56
|
validateTransitionWithExistingContract = (t) => validateDataContractUpdateTransitionState(
|
|
@@ -87,7 +88,7 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
|
|
|
87
88
|
|
|
88
89
|
const badStateTransition = new DataContractUpdateTransition({
|
|
89
90
|
dataContract: badlyUpdatedRawDataContract,
|
|
90
|
-
protocolVersion:
|
|
91
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
91
92
|
});
|
|
92
93
|
|
|
93
94
|
const result = await validateTransitionWithExistingContract(badStateTransition);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
1
|
+
const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
|
|
2
2
|
|
|
3
|
-
const { default: loadWasmDpp } = require('
|
|
3
|
+
const { default: loadWasmDpp } = require('../../../..');
|
|
4
4
|
|
|
5
|
-
describe('validateDataContractPatterns', () => {
|
|
5
|
+
describe.skip('validateDataContractPatterns', () => {
|
|
6
6
|
let DataContractValidator;
|
|
7
7
|
let IncompatibleRe2PatternError;
|
|
8
8
|
|
|
@@ -13,8 +13,8 @@ describe('validateDataContractPatterns', () => {
|
|
|
13
13
|
} = await loadWasmDpp());
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
-
it('should return valid result', () => {
|
|
17
|
-
const rawDataContract = getDataContractFixture().toObject();
|
|
16
|
+
it('should return valid result', async () => {
|
|
17
|
+
const rawDataContract = (await getDataContractFixture()).toObject();
|
|
18
18
|
delete rawDataContract.$defs;
|
|
19
19
|
|
|
20
20
|
const schema = {
|
|
@@ -39,8 +39,8 @@ describe('validateDataContractPatterns', () => {
|
|
|
39
39
|
expect(result.isValid()).to.be.true();
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
it('should return invalid result on incompatible pattern', () => {
|
|
43
|
-
const rawDataContract = getDataContractFixture().toObject();
|
|
42
|
+
it('should return invalid result on incompatible pattern', async () => {
|
|
43
|
+
const rawDataContract = (await getDataContractFixture()).toObject();
|
|
44
44
|
delete rawDataContract.$defs;
|
|
45
45
|
|
|
46
46
|
const schema = {
|
|
@@ -15,7 +15,7 @@ const DataTriggerConditionError = require('@dashevo/dpp/lib/errors/consensus/sta
|
|
|
15
15
|
const Identifier = require('@dashevo/dpp/lib/identifier/Identifier');
|
|
16
16
|
const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
|
|
17
17
|
|
|
18
|
-
describe('createDomainDataTrigger', () => {
|
|
18
|
+
describe.skip('createDomainDataTrigger', () => {
|
|
19
19
|
let parentDocumentTransition;
|
|
20
20
|
let childDocumentTransition;
|
|
21
21
|
let childDocument;
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
const crypto = require('crypto');
|
|
1
2
|
const JsDataContractFactory = require('@dashevo/dpp/lib/dataContract/DataContractFactory');
|
|
2
3
|
const JsIdentifier = require('@dashevo/dpp/lib/identifier/Identifier');
|
|
3
4
|
const JsDocument = require('@dashevo/dpp/lib/document/Document');
|
|
4
5
|
const DocumentCreateTransition = require(
|
|
5
6
|
'@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/documentTransition/DocumentCreateTransition',
|
|
6
7
|
);
|
|
7
|
-
|
|
8
|
+
|
|
8
9
|
const createDPPMock = require('@dashevo/dpp/lib/test/mocks/createDPPMock');
|
|
9
10
|
const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
|
|
10
11
|
|
|
11
12
|
const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
12
|
-
const { default: loadWasmDpp } = require('
|
|
13
|
+
const { default: loadWasmDpp } = require('../../..');
|
|
14
|
+
const { getLatestProtocolVersion } = require('../../..');
|
|
13
15
|
|
|
14
16
|
let DataContractFactory;
|
|
15
|
-
let DataContractValidator;
|
|
16
17
|
let PlatformValueError;
|
|
17
18
|
let Identifier;
|
|
18
19
|
let ExtendedDocument;
|
|
@@ -30,7 +31,7 @@ describe('Document', () => {
|
|
|
30
31
|
// eslint-disable-next-line prefer-arrow-callback
|
|
31
32
|
beforeEach(async function beforeEach() {
|
|
32
33
|
({
|
|
33
|
-
Identifier, DataContractFactory,
|
|
34
|
+
Identifier, DataContractFactory, ExtendedDocument, PlatformValueError,
|
|
34
35
|
} = await loadWasmDpp());
|
|
35
36
|
|
|
36
37
|
const now = new Date().getTime();
|
|
@@ -40,11 +41,14 @@ describe('Document', () => {
|
|
|
40
41
|
const ownerId = await generateRandomIdentifierAsync();
|
|
41
42
|
const jsOwnerId = new JsIdentifier(Buffer.from(ownerId.toBuffer()));
|
|
42
43
|
const jsDataContractFactory = new JsDataContractFactory(createDPPMock(), () => { });
|
|
43
|
-
const
|
|
44
|
-
|
|
44
|
+
const dataContractFactory = new DataContractFactory(
|
|
45
|
+
1,
|
|
46
|
+
{ generate: () => crypto.randomBytes(32) },
|
|
47
|
+
);
|
|
45
48
|
|
|
46
49
|
const rawDataContract = {
|
|
47
50
|
test: {
|
|
51
|
+
type: 'object',
|
|
48
52
|
properties: {
|
|
49
53
|
name: {
|
|
50
54
|
type: 'string',
|
|
@@ -69,10 +73,13 @@ describe('Document', () => {
|
|
|
69
73
|
maxItems: 32,
|
|
70
74
|
},
|
|
71
75
|
},
|
|
76
|
+
additionalProperties: false,
|
|
72
77
|
},
|
|
73
78
|
},
|
|
79
|
+
additionalProperties: false,
|
|
74
80
|
},
|
|
75
81
|
},
|
|
82
|
+
additionalProperties: false,
|
|
76
83
|
},
|
|
77
84
|
};
|
|
78
85
|
|
|
@@ -80,7 +87,7 @@ describe('Document', () => {
|
|
|
80
87
|
dataContractJs = jsDataContractFactory.create(jsOwnerId, rawDataContract);
|
|
81
88
|
|
|
82
89
|
rawDocument = {
|
|
83
|
-
$protocolVersion:
|
|
90
|
+
$protocolVersion: getLatestProtocolVersion(),
|
|
84
91
|
$id: id,
|
|
85
92
|
$type: 'test',
|
|
86
93
|
$dataContractId: dataContract.getId(),
|
|
@@ -91,7 +98,7 @@ describe('Document', () => {
|
|
|
91
98
|
};
|
|
92
99
|
|
|
93
100
|
rawDocumentWithBuffers = {
|
|
94
|
-
$protocolVersion:
|
|
101
|
+
$protocolVersion: getLatestProtocolVersion(),
|
|
95
102
|
$id: id.toBuffer(),
|
|
96
103
|
$type: 'test',
|
|
97
104
|
$dataContractId: dataContract.getId().toBuffer(),
|
|
@@ -128,7 +135,7 @@ describe('Document', () => {
|
|
|
128
135
|
expect(document.getId().toBuffer()).to.deep.equal(rawDocument.$id.toBuffer());
|
|
129
136
|
});
|
|
130
137
|
|
|
131
|
-
it('should create DocumentCreateTransition with $type and data if present', () => {
|
|
138
|
+
it.skip('should create DocumentCreateTransition with $type and data if present', () => {
|
|
132
139
|
const data = {
|
|
133
140
|
test: 1,
|
|
134
141
|
};
|
|
@@ -159,7 +166,7 @@ describe('Document', () => {
|
|
|
159
166
|
document = new ExtendedDocument(rawDocument, dataContract);
|
|
160
167
|
} catch (e) {
|
|
161
168
|
expect(e).to.be.instanceOf(PlatformValueError);
|
|
162
|
-
expect(e.getMessage()).to.equal('
|
|
169
|
+
expect(e.getMessage()).to.equal('serde deserialization error: missing field `$ownerId`');
|
|
163
170
|
}
|
|
164
171
|
});
|
|
165
172
|
|
|
@@ -179,7 +186,7 @@ describe('Document', () => {
|
|
|
179
186
|
document = new ExtendedDocument(rawDocument, dataContract);
|
|
180
187
|
} catch (e) {
|
|
181
188
|
expect(e).to.be.instanceOf(PlatformValueError);
|
|
182
|
-
expect(e.getMessage()).to.equal('
|
|
189
|
+
expect(e.getMessage()).to.equal('serde deserialization error: missing field `$id`');
|
|
183
190
|
}
|
|
184
191
|
});
|
|
185
192
|
|
|
@@ -375,7 +382,8 @@ describe('Document', () => {
|
|
|
375
382
|
expect(document.get(path).toBuffer()).to.deep.equal(buffer);
|
|
376
383
|
});
|
|
377
384
|
|
|
378
|
-
|
|
385
|
+
// It should return Identifier instead of string
|
|
386
|
+
it.skip('should set identifier as part of object', () => {
|
|
379
387
|
const buffer = Buffer.alloc(32, 'a');
|
|
380
388
|
const path = 'dataObject.binaryObject';
|
|
381
389
|
const identifierPath = 'dataObject.binaryObject.identifier';
|
|
@@ -394,6 +402,7 @@ describe('Document', () => {
|
|
|
394
402
|
const jsonDocument = {
|
|
395
403
|
...rawDocument,
|
|
396
404
|
$dataContractId: document.getDataContractId().toString(),
|
|
405
|
+
$dataContract: document.getDataContract().toJSON(),
|
|
397
406
|
$id: document.getId().toString(),
|
|
398
407
|
$ownerId: document.getOwnerId().toString(),
|
|
399
408
|
};
|
|
@@ -411,15 +420,15 @@ describe('Document', () => {
|
|
|
411
420
|
});
|
|
412
421
|
|
|
413
422
|
describe('#toBuffer', () => {
|
|
414
|
-
it('
|
|
415
|
-
const jsBuffer = documentJs.toBuffer();
|
|
423
|
+
it('should return serialized Document', () => {
|
|
416
424
|
const buffer = document.toBuffer();
|
|
417
|
-
|
|
418
|
-
expect(
|
|
419
|
-
expect(jsBuffer).to.deep.equal(buffer);
|
|
425
|
+
expect(buffer).to.be.instanceOf(Buffer);
|
|
426
|
+
expect(buffer.length).to.equal(564);
|
|
420
427
|
});
|
|
421
428
|
|
|
422
|
-
|
|
429
|
+
// TODO: remove or replace?
|
|
430
|
+
// can not be compared to JS buffers anymore because uses bin code
|
|
431
|
+
it.skip('should return the same bytes as JS version when dynamic identifier is in Document', () => {
|
|
423
432
|
const jsId = generateRandomIdentifier();
|
|
424
433
|
const id = new Identifier(jsId.toBuffer());
|
|
425
434
|
const path = 'dataObject.binaryObject.identifier';
|
|
@@ -438,7 +447,9 @@ describe('Document', () => {
|
|
|
438
447
|
expect(jsBuffer).to.deep.equal(buffer);
|
|
439
448
|
});
|
|
440
449
|
|
|
441
|
-
|
|
450
|
+
// TODO: remove or replace?
|
|
451
|
+
// can not be compared to JS buffers anymore because uses bin code
|
|
452
|
+
it.skip('should return the same bytes as JS version when dynamic binaryData is in Document', () => {
|
|
442
453
|
const data = Buffer.alloc(32);
|
|
443
454
|
const path = 'dataObject.binaryObject.binaryData';
|
|
444
455
|
|
|
@@ -453,7 +464,7 @@ describe('Document', () => {
|
|
|
453
464
|
});
|
|
454
465
|
});
|
|
455
466
|
|
|
456
|
-
describe('#hash', () => {
|
|
467
|
+
describe.skip('#hash', () => {
|
|
457
468
|
it('returned hash should be the same as JS version', () => {
|
|
458
469
|
expect(documentJs.hash()).to.deep.equal(document.hash());
|
|
459
470
|
});
|