@dashevo/wasm-dpp 0.25.0-dev.9 → 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,5 +1,5 @@
|
|
|
1
|
-
const createStateRepositoryMock = require('
|
|
2
|
-
const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/
|
|
1
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
2
|
+
const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
|
|
3
3
|
|
|
4
4
|
const {
|
|
5
5
|
expectJsonSchemaError,
|
|
@@ -7,7 +7,7 @@ const {
|
|
|
7
7
|
} = require('../../../../../../../lib/test/expect/expectError');
|
|
8
8
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
9
9
|
|
|
10
|
-
describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
10
|
+
describe.skip('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
11
11
|
let rawStateTransition;
|
|
12
12
|
let stateTransition;
|
|
13
13
|
|
|
@@ -17,7 +17,6 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
17
17
|
let validateIdentityTopUpTransitionBasic;
|
|
18
18
|
|
|
19
19
|
let StateTransitionExecutionContext;
|
|
20
|
-
let IdentityTopUpTransition;
|
|
21
20
|
let IdentityPublicKey;
|
|
22
21
|
let UnsupportedProtocolVersionError;
|
|
23
22
|
let InvalidInstantAssetLockProofSignatureError;
|
|
@@ -26,7 +25,6 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
26
25
|
before(async () => {
|
|
27
26
|
({
|
|
28
27
|
IdentityTopUpTransitionBasicValidator,
|
|
29
|
-
IdentityTopUpTransition,
|
|
30
28
|
StateTransitionExecutionContext,
|
|
31
29
|
IdentityPublicKey,
|
|
32
30
|
UnsupportedProtocolVersionError,
|
|
@@ -47,8 +45,7 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
47
45
|
context,
|
|
48
46
|
);
|
|
49
47
|
|
|
50
|
-
|
|
51
|
-
stateTransition = new IdentityTopUpTransition(stateTransitionJS.toObject());
|
|
48
|
+
stateTransition = await getIdentityTopUpTransitionFixture();
|
|
52
49
|
|
|
53
50
|
const privateKey = '9b67f852093bc61cea0eeca38599dbfba0de28574d2ed9b99d10d33dc1bde7b2';
|
|
54
51
|
|
|
@@ -5,7 +5,7 @@ const { expectJsonSchemaError, expectValidationError } = require('../../../../..
|
|
|
5
5
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
6
6
|
const getBlsAdapterMock = require('../../../../../../../lib/test/mocks/getBlsAdapterMock');
|
|
7
7
|
|
|
8
|
-
describe('validateIdentityUpdateTransitionBasicFactory', () => {
|
|
8
|
+
describe.skip('validateIdentityUpdateTransitionBasicFactory', () => {
|
|
9
9
|
let validateIdentityUpdateTransitionBasic;
|
|
10
10
|
let rawStateTransition;
|
|
11
11
|
let stateTransition;
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
const identitySchema = require('
|
|
2
|
-
const createStateRepositoryMock = require('
|
|
3
|
-
const getIdentityFixture = require('
|
|
4
|
-
const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
|
|
5
|
-
const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
|
|
1
|
+
const identitySchema = require('../../../../../../../../rs-dpp/src/schema/identity/v0/identity.json');
|
|
2
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
3
|
+
const getIdentityFixture = require('../../../../../../../lib/test/fixtures/getIdentityFixture');
|
|
6
4
|
const getIdentityUpdateTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
|
|
7
5
|
|
|
8
|
-
const { default: loadWasmDpp } = require('
|
|
6
|
+
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
9
7
|
const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
|
|
10
8
|
const generateRandomIdentifierAsync = require('../../../../../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
11
9
|
const getBlsAdapterMock = require('../../../../../../../lib/test/mocks/getBlsAdapterMock');
|
|
12
10
|
|
|
13
|
-
describe('validateIdentityUpdateTransitionStateFactory', () => {
|
|
11
|
+
describe.skip('validateIdentityUpdateTransitionStateFactory', () => {
|
|
14
12
|
let validateIdentityUpdateTransitionState;
|
|
15
13
|
let stateRepositoryMock;
|
|
16
14
|
let stateTransition;
|
|
17
15
|
let identity;
|
|
18
16
|
let rawIdentity;
|
|
19
|
-
let validatePublicKeysMock;
|
|
20
17
|
let blockTime;
|
|
21
18
|
let executionContext;
|
|
22
19
|
|
|
@@ -49,7 +46,7 @@ describe('validateIdentityUpdateTransitionStateFactory', () => {
|
|
|
49
46
|
});
|
|
50
47
|
|
|
51
48
|
beforeEach(async function beforeEach() {
|
|
52
|
-
rawIdentity = getIdentityFixture().toObject();
|
|
49
|
+
rawIdentity = (await getIdentityFixture()).toObject();
|
|
53
50
|
// Patch identity id to be acceptable by wasm-dpp
|
|
54
51
|
rawIdentity.id = await generateRandomIdentifierAsync();
|
|
55
52
|
identity = new Identity(rawIdentity);
|
|
@@ -248,21 +245,21 @@ describe('validateIdentityUpdateTransitionStateFactory', () => {
|
|
|
248
245
|
// TODO: remove?
|
|
249
246
|
// Skipped, because two tests above are seem to be enough
|
|
250
247
|
it.skip('should validate resulting identity public keys', async () => {
|
|
251
|
-
const publicKeysError = new SomeConsensusError('test');
|
|
252
|
-
|
|
253
|
-
validatePublicKeysMock.returns(new ValidationResult([publicKeysError]));
|
|
254
|
-
|
|
255
|
-
const result = await validateIdentityUpdateTransitionState(stateTransition);
|
|
256
|
-
|
|
257
|
-
expectValidationError(result, SomeConsensusError);
|
|
258
|
-
|
|
259
|
-
expect(validatePublicKeysMock).to.be.calledOnce();
|
|
260
|
-
|
|
261
|
-
const publicKeys = [...identity.getPublicKeys(), ...stateTransition.getPublicKeysToAdd()];
|
|
262
|
-
|
|
263
|
-
expect(validatePublicKeysMock).to.be.calledWithExactly(
|
|
264
|
-
|
|
265
|
-
);
|
|
248
|
+
// const publicKeysError = new SomeConsensusError('test');
|
|
249
|
+
//
|
|
250
|
+
// validatePublicKeysMock.returns(new ValidationResult([publicKeysError]));
|
|
251
|
+
//
|
|
252
|
+
// const result = await validateIdentityUpdateTransitionState(stateTransition);
|
|
253
|
+
//
|
|
254
|
+
// expectValidationError(result, SomeConsensusError);
|
|
255
|
+
//
|
|
256
|
+
// expect(validatePublicKeysMock).to.be.calledOnce();
|
|
257
|
+
//
|
|
258
|
+
// const publicKeys = [...identity.getPublicKeys(), ...stateTransition.getPublicKeysToAdd()];
|
|
259
|
+
//
|
|
260
|
+
// expect(validatePublicKeysMock).to.be.calledWithExactly(
|
|
261
|
+
// publicKeys.map((pk) => pk.toObject()),
|
|
262
|
+
// );
|
|
266
263
|
});
|
|
267
264
|
|
|
268
265
|
it('should return valid result on dry run', async function () {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const identitySchema = require('
|
|
1
|
+
const identitySchema = require('../../../../../../../../rs-dpp/src/schema/identity/v0/identity.json');
|
|
2
2
|
const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
|
|
3
3
|
|
|
4
4
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
5
5
|
|
|
6
|
-
describe('validatePublicKeysState', () => {
|
|
6
|
+
describe.skip('validatePublicKeysState', () => {
|
|
7
7
|
let IdentityUpdatePublicKeysValidator;
|
|
8
8
|
let DuplicatedIdentityPublicKeyIdStateError;
|
|
9
9
|
let DuplicatedIdentityPublicKeyStateError;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
const { Transaction, Script, PrivateKey } = require('@dashevo/dashcore-lib');
|
|
2
2
|
|
|
3
|
-
const getChainAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
|
|
4
|
-
const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
|
|
5
|
-
|
|
6
3
|
const { expect } = require('chai');
|
|
4
|
+
const getChainAssetLockFixture = require('../../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
|
|
5
|
+
const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
|
+
|
|
7
7
|
const { expectJsonSchemaError, expectValidationError } = require('../../../../../../lib/test/expect/expectError');
|
|
8
8
|
|
|
9
9
|
const { default: loadWasmDpp } = require('../../../../../../dist');
|
|
10
10
|
|
|
11
|
-
describe('validateChainAssetLockProofStructureFactory', () => {
|
|
11
|
+
describe.skip('validateChainAssetLockProofStructureFactory', () => {
|
|
12
12
|
let rawProof;
|
|
13
13
|
let stateRepositoryMock;
|
|
14
14
|
let publicKeyHash;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
const { Transaction } = require('@dashevo/dashcore-lib');
|
|
2
2
|
|
|
3
|
-
const getChainAssetLockFixture = require('
|
|
4
|
-
const getInstantAssetLockProofFixture = require('
|
|
5
|
-
const createStateRepositoryMock = require('
|
|
3
|
+
const getChainAssetLockFixture = require('../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
|
|
4
|
+
const getInstantAssetLockProofFixture = require('../../../../../lib/test/fixtures/getInstantAssetLockProofFixture');
|
|
5
|
+
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
6
|
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
7
7
|
|
|
8
|
-
describe('fetchAssetLockTransactionOutputFactory', () => {
|
|
8
|
+
describe.skip('fetchAssetLockTransactionOutputFactory', () => {
|
|
9
9
|
let fetchAssetLockTransactionOutput;
|
|
10
10
|
let stateRepositoryMock;
|
|
11
11
|
let executionContext;
|
|
12
12
|
|
|
13
13
|
let StateTransitionExecutionContext;
|
|
14
|
-
let InstantAssetLockProof;
|
|
15
14
|
let ChainAssetLockProof;
|
|
16
15
|
let AssetLockTransactionIsNotFoundError;
|
|
17
16
|
let UnknownAssetLockProofTypeError;
|
|
@@ -22,7 +21,6 @@ describe('fetchAssetLockTransactionOutputFactory', () => {
|
|
|
22
21
|
({
|
|
23
22
|
StateTransitionExecutionContext,
|
|
24
23
|
fetchAssetLockTransactionOutput: fetchAssetLockTransactionOutputDPP,
|
|
25
|
-
InstantAssetLockProof,
|
|
26
24
|
ChainAssetLockProof,
|
|
27
25
|
AssetLockTransactionIsNotFoundError,
|
|
28
26
|
UnknownAssetLockProofTypeError,
|
|
@@ -44,9 +42,8 @@ describe('fetchAssetLockTransactionOutputFactory', () => {
|
|
|
44
42
|
describe('InstantAssetLockProof', () => {
|
|
45
43
|
let assetLockProofFixture;
|
|
46
44
|
|
|
47
|
-
beforeEach(() => {
|
|
48
|
-
|
|
49
|
-
assetLockProofFixture = new InstantAssetLockProof(assetLockProofFixtureJS.toObject());
|
|
45
|
+
beforeEach(async () => {
|
|
46
|
+
assetLockProofFixture = await getInstantAssetLockProofFixture();
|
|
50
47
|
});
|
|
51
48
|
|
|
52
49
|
it('should return asset lock output', async () => {
|
|
@@ -122,7 +119,7 @@ describe('fetchAssetLockTransactionOutputFactory', () => {
|
|
|
122
119
|
}
|
|
123
120
|
});
|
|
124
121
|
|
|
125
|
-
it('should return mocked output on dry run', async function () {
|
|
122
|
+
it('should return mocked output on dry run', async function shouldReturn() {
|
|
126
123
|
executionContext.enableDryRun();
|
|
127
124
|
|
|
128
125
|
const result = await fetchAssetLockTransactionOutput(
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
const DashCoreLib = require('@dashevo/dashcore-lib');
|
|
2
|
-
|
|
3
|
-
const getInstantAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
|
|
4
|
-
const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
|
|
5
|
-
|
|
6
2
|
const { expect } = require('chai');
|
|
3
|
+
|
|
4
|
+
const getInstantAssetLockFixture = require('../../../../../../lib/test/fixtures/js/getInstantAssetLockProofFixture');
|
|
5
|
+
const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
7
6
|
const { expectJsonSchemaError, expectValidationError } = require('../../../../../../lib/test/expect/expectError');
|
|
8
7
|
|
|
9
8
|
const { default: loadWasmDpp } = require('../../../../../../dist');
|
|
10
9
|
|
|
11
|
-
describe('validateInstantAssetLockProofStructureFactory', () => {
|
|
10
|
+
describe.skip('validateInstantAssetLockProofStructureFactory', () => {
|
|
12
11
|
let rawProof;
|
|
13
12
|
let transaction;
|
|
14
13
|
let stateRepositoryMock;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
const { Transaction, PrivateKey, Script } = require('@dashevo/dashcore-lib');
|
|
2
|
-
|
|
3
|
-
const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
|
|
4
|
-
|
|
5
2
|
const { expect } = require('chai');
|
|
3
|
+
|
|
4
|
+
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
5
|
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
7
6
|
const { expectValidationError } = require('../../../../../lib/test/expect/expectError');
|
|
8
7
|
|
|
9
|
-
describe('validateAssetLockTransactionFactory', () => {
|
|
8
|
+
describe.skip('validateAssetLockTransactionFactory', () => {
|
|
10
9
|
let stateRepositoryMock;
|
|
11
10
|
let rawTransaction;
|
|
12
11
|
let outputIndex;
|
|
@@ -133,7 +132,8 @@ describe('validateAssetLockTransactionFactory', () => {
|
|
|
133
132
|
expect(error.getOutputIndex()).to.equal(outputIndex);
|
|
134
133
|
});
|
|
135
134
|
|
|
136
|
-
it('should return IdentityAssetLockTransactionOutPointAlreadyExistsError if outPoint was
|
|
135
|
+
it('should return IdentityAssetLockTransactionOutPointAlreadyExistsError if outPoint was'
|
|
136
|
+
+ ' already used', async function shouldReturn() {
|
|
137
137
|
stateRepositoryMock.isAssetLockTransactionOutPointAlreadyUsed.resolves(true);
|
|
138
138
|
|
|
139
139
|
const result = await validateAssetLockTransaction(
|
|
@@ -162,7 +162,7 @@ describe('validateAssetLockTransactionFactory', () => {
|
|
|
162
162
|
);
|
|
163
163
|
});
|
|
164
164
|
|
|
165
|
-
it('should return valid result', async function () {
|
|
165
|
+
it('should return valid result', async function shouldReturn() {
|
|
166
166
|
const result = await validateAssetLockTransaction(
|
|
167
167
|
rawTransaction,
|
|
168
168
|
outputIndex,
|
package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js
CHANGED
|
@@ -2,21 +2,20 @@ const { PrivateKey, crypto: { Hash } } = require('@dashevo/dashcore-lib');
|
|
|
2
2
|
|
|
3
3
|
const crypto = require('crypto');
|
|
4
4
|
|
|
5
|
-
const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
6
5
|
const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
|
|
7
6
|
|
|
8
7
|
const { expect } = require('chai');
|
|
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');
|
|
11
11
|
|
|
12
12
|
const { default: loadWasmDpp } = require('../../../../dist');
|
|
13
13
|
|
|
14
|
-
describe('validatePublicKeySignaturesFactory', () => {
|
|
14
|
+
describe.skip('validatePublicKeySignaturesFactory', () => {
|
|
15
15
|
let identityCreateTransition;
|
|
16
16
|
let rawIdentityCreateTransition;
|
|
17
17
|
let validatePublicKeySignatures;
|
|
18
18
|
|
|
19
|
-
let IdentityCreateTransition;
|
|
20
19
|
let IdentityPublicKey;
|
|
21
20
|
let IdentityPublicKeyWithWitness;
|
|
22
21
|
let InvalidIdentityKeySignatureError;
|
|
@@ -26,7 +25,6 @@ describe('validatePublicKeySignaturesFactory', () => {
|
|
|
26
25
|
|
|
27
26
|
before(async () => {
|
|
28
27
|
({
|
|
29
|
-
IdentityCreateTransition,
|
|
30
28
|
IdentityPublicKey,
|
|
31
29
|
IdentityPublicKeyWithWitness,
|
|
32
30
|
InvalidIdentityKeySignatureError,
|
|
@@ -36,9 +34,7 @@ describe('validatePublicKeySignaturesFactory', () => {
|
|
|
36
34
|
});
|
|
37
35
|
|
|
38
36
|
beforeEach(async () => {
|
|
39
|
-
identityCreateTransition =
|
|
40
|
-
getIdentityCreateTransitionFixture().toObject(),
|
|
41
|
-
);
|
|
37
|
+
identityCreateTransition = await getIdentityCreateTransitionFixture();
|
|
42
38
|
|
|
43
39
|
const privateKey1 = new PrivateKey('17e0b1703e226204c557bce68b0871683ea409ae90c7a733b72a33f7c129c959');
|
|
44
40
|
const publicKey1 = privateKey1.toPublicKey();
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const getIdentityFixture = require('
|
|
1
|
+
const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
|
|
2
2
|
const { expectValidationError, expectJsonSchemaError } = require('../../../../lib/test/expect/expectError');
|
|
3
3
|
|
|
4
4
|
const { default: loadWasmDpp } = require('../../../../dist');
|
|
5
5
|
const getBlsAdapterMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
|
|
6
6
|
const generateRandomIdentifierAsync = require('../../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
7
7
|
|
|
8
|
-
describe('validateIdentityFactory', () => {
|
|
8
|
+
describe.skip('validateIdentityFactory', () => {
|
|
9
9
|
let rawIdentity;
|
|
10
10
|
let validateIdentity;
|
|
11
11
|
let identity;
|
|
@@ -18,16 +18,17 @@ describe('validateIdentityFactory', () => {
|
|
|
18
18
|
({ IdentityValidator, Identity, UnsupportedProtocolVersionError } = await loadWasmDpp());
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
beforeEach(async ()
|
|
21
|
+
beforeEach(async function beforeEach() {
|
|
22
|
+
this.timeout(20000);
|
|
22
23
|
const blsAdapter = await getBlsAdapterMock();
|
|
23
24
|
|
|
24
25
|
const validator = new IdentityValidator(blsAdapter);
|
|
25
26
|
|
|
26
27
|
validateIdentity = (value) => validator.validate(value);
|
|
27
28
|
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
identity = new Identity(
|
|
29
|
+
const identityObject = (await getIdentityFixture()).toObject();
|
|
30
|
+
identityObject.id = await generateRandomIdentifierAsync();
|
|
31
|
+
identity = new Identity(identityObject);
|
|
31
32
|
|
|
32
33
|
rawIdentity = identity.toObject();
|
|
33
34
|
});
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
2
|
|
|
3
|
-
const getIdentityFixture = require('
|
|
4
|
-
|
|
5
|
-
const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
|
|
3
|
+
const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
|
|
4
|
+
const getBlsMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
|
|
6
5
|
|
|
7
6
|
const {
|
|
8
7
|
expectValidationError,
|
|
@@ -11,12 +10,11 @@ const {
|
|
|
11
10
|
|
|
12
11
|
const { default: loadWasmDpp } = require('../../../../dist');
|
|
13
12
|
|
|
14
|
-
describe('validatePublicKeysFactory', function main() {
|
|
13
|
+
describe.skip('validatePublicKeysFactory', function main() {
|
|
15
14
|
this.timeout(10000);
|
|
16
15
|
|
|
17
16
|
let rawPublicKeys;
|
|
18
17
|
let validatePublicKeys;
|
|
19
|
-
let bls;
|
|
20
18
|
let publicKeysValidator;
|
|
21
19
|
|
|
22
20
|
let PublicKeysValidator;
|
|
@@ -28,7 +26,7 @@ describe('validatePublicKeysFactory', function main() {
|
|
|
28
26
|
let InvalidIdentityPublicKeySecurityLevelError;
|
|
29
27
|
|
|
30
28
|
beforeEach(async () => {
|
|
31
|
-
({ publicKeys: rawPublicKeys } = getIdentityFixture().toObject());
|
|
29
|
+
({ publicKeys: rawPublicKeys } = (await getIdentityFixture()).toObject());
|
|
32
30
|
|
|
33
31
|
({
|
|
34
32
|
PublicKeysValidator, IdentityPublicKey,
|
|
@@ -37,25 +35,7 @@ describe('validatePublicKeysFactory', function main() {
|
|
|
37
35
|
InvalidIdentityPublicKeyDataError, InvalidIdentityPublicKeySecurityLevelError,
|
|
38
36
|
} = await loadWasmDpp());
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const blsAdapter = {
|
|
43
|
-
validatePublicKey(publicKeyBuffer) {
|
|
44
|
-
let pk;
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
pk = bls.G1Element.fromBytes(publicKeyBuffer);
|
|
48
|
-
} catch (e) {
|
|
49
|
-
return false;
|
|
50
|
-
} finally {
|
|
51
|
-
if (pk) {
|
|
52
|
-
pk.delete();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return Boolean(pk);
|
|
57
|
-
},
|
|
58
|
-
};
|
|
38
|
+
const blsAdapter = await getBlsMock();
|
|
59
39
|
|
|
60
40
|
publicKeysValidator = new PublicKeysValidator(blsAdapter);
|
|
61
41
|
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
const { PrivateKey } = require('@dashevo/dashcore-lib');
|
|
2
2
|
const crypto = require('crypto');
|
|
3
3
|
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
|
|
7
|
-
|
|
8
|
-
const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
|
|
4
|
+
const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
|
|
5
|
+
const getIdentityCreateTransitionFixture = require('../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
9
6
|
const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
|
|
10
7
|
const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
|
|
11
8
|
|
|
12
9
|
const { default: loadWasmDpp } = require('../../../dist');
|
|
13
|
-
const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
|
|
14
10
|
const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
15
11
|
|
|
16
12
|
describe('StateTransitionFacade', () => {
|
|
@@ -25,63 +21,60 @@ describe('StateTransitionFacade', () => {
|
|
|
25
21
|
|
|
26
22
|
let DashPlatformProtocol;
|
|
27
23
|
let DataContractFactory;
|
|
28
|
-
let DataContractValidator;
|
|
24
|
+
// let DataContractValidator;
|
|
29
25
|
let DataContractCreateTransition;
|
|
30
|
-
let Identity;
|
|
26
|
+
// let Identity;
|
|
31
27
|
let ValidationResult;
|
|
32
28
|
let IdentityPublicKey;
|
|
33
29
|
let DocumentFactory;
|
|
34
|
-
let DocumentValidator;
|
|
35
|
-
let ProtocolVersionValidator;
|
|
36
|
-
let IdentityCreateTransition;
|
|
30
|
+
// let DocumentValidator;
|
|
31
|
+
// let ProtocolVersionValidator;
|
|
37
32
|
let UnsupportedProtocolVersionError;
|
|
38
33
|
let InvalidStateTransitionSignatureError;
|
|
39
34
|
let DataContractAlreadyPresentError;
|
|
40
35
|
let BalanceIsNotEnoughError;
|
|
41
|
-
let StateTransitionExecutionContext;
|
|
36
|
+
// let StateTransitionExecutionContext;
|
|
42
37
|
|
|
43
38
|
before(async () => {
|
|
44
39
|
({
|
|
45
40
|
DashPlatformProtocol,
|
|
46
41
|
ValidationResult,
|
|
47
42
|
DataContractCreateTransition,
|
|
48
|
-
Identity,
|
|
49
|
-
DataContractValidator,
|
|
43
|
+
// Identity,
|
|
50
44
|
DataContractFactory,
|
|
51
45
|
IdentityPublicKey,
|
|
52
46
|
DocumentFactory,
|
|
53
|
-
DocumentValidator,
|
|
54
|
-
ProtocolVersionValidator,
|
|
55
|
-
IdentityCreateTransition,
|
|
47
|
+
// DocumentValidator,
|
|
48
|
+
// ProtocolVersionValidator,
|
|
56
49
|
UnsupportedProtocolVersionError,
|
|
57
50
|
InvalidStateTransitionSignatureError,
|
|
58
51
|
DataContractAlreadyPresentError,
|
|
59
52
|
BalanceIsNotEnoughError,
|
|
60
|
-
StateTransitionExecutionContext,
|
|
61
53
|
} = await loadWasmDpp());
|
|
62
54
|
});
|
|
63
55
|
|
|
64
56
|
beforeEach(async function beforeEach() {
|
|
57
|
+
this.timeout(20000);
|
|
65
58
|
const privateKeyModel = new PrivateKey();
|
|
66
59
|
const privateKey = privateKeyModel.toBuffer();
|
|
67
60
|
const publicKey = privateKeyModel.toPublicKey().toBuffer();
|
|
68
61
|
const publicKeyId = 1;
|
|
69
62
|
|
|
70
|
-
executionContext = new StateTransitionExecutionContext();
|
|
63
|
+
// executionContext = new StateTransitionExecutionContext();
|
|
71
64
|
|
|
72
|
-
identityPublicKey = new IdentityPublicKey(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
65
|
+
identityPublicKey = new IdentityPublicKey(1);
|
|
66
|
+
|
|
67
|
+
identityPublicKey.setId(publicKeyId);
|
|
68
|
+
identityPublicKey.setType(IdentityPublicKey.TYPES.ECDSA_SECP256K1);
|
|
69
|
+
identityPublicKey.setData(publicKey);
|
|
70
|
+
identityPublicKey.setSecurityLevel(IdentityPublicKey.SECURITY_LEVELS.CRITICAL);
|
|
71
|
+
identityPublicKey.setPurpose(IdentityPublicKey.PURPOSES.AUTHENTICATION);
|
|
72
|
+
identityPublicKey.setReadOnly(false);
|
|
80
73
|
|
|
81
74
|
dataContract = await getDataContractFixture();
|
|
82
75
|
|
|
83
|
-
const dataContractValidator = new DataContractValidator();
|
|
84
|
-
const dataContractFactory = new DataContractFactory(1
|
|
76
|
+
// const dataContractValidator = new DataContractValidator();
|
|
77
|
+
const dataContractFactory = new DataContractFactory(1);
|
|
85
78
|
|
|
86
79
|
dataContractCreateTransition = await dataContractFactory.createDataContractCreateTransition(
|
|
87
80
|
dataContract,
|
|
@@ -91,39 +84,36 @@ describe('StateTransitionFacade', () => {
|
|
|
91
84
|
privateKey,
|
|
92
85
|
);
|
|
93
86
|
|
|
94
|
-
const documentValidator = new DocumentValidator(new ProtocolVersionValidator());
|
|
95
|
-
|
|
87
|
+
// const documentValidator = new DocumentValidator(new ProtocolVersionValidator());
|
|
88
|
+
// documentValidator, stateRepositoryMock
|
|
89
|
+
const documentFactory = new DocumentFactory(1);
|
|
90
|
+
|
|
91
|
+
identityPublicKey = new IdentityPublicKey(1);
|
|
92
|
+
|
|
93
|
+
identityPublicKey.setId(publicKeyId);
|
|
94
|
+
identityPublicKey.setType(IdentityPublicKey.TYPES.ECDSA_SECP256K1);
|
|
95
|
+
identityPublicKey.setData(publicKey);
|
|
96
|
+
identityPublicKey.setSecurityLevel(IdentityPublicKey.SECURITY_LEVELS.HIGH);
|
|
97
|
+
identityPublicKey.setPurpose(IdentityPublicKey.PURPOSES.AUTHENTICATION);
|
|
98
|
+
identityPublicKey.setReadOnly(false);
|
|
96
99
|
|
|
97
100
|
documentsBatchTransition = documentFactory.createStateTransition({
|
|
98
101
|
create: await getDocumentsFixture(dataContract),
|
|
99
102
|
});
|
|
100
103
|
await documentsBatchTransition.sign(identityPublicKey, privateKey);
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
identity = new Identity(identityObjectJS);
|
|
105
|
+
identity = await getIdentityFixture();
|
|
106
|
+
identity.setId(await generateRandomIdentifierAsync());
|
|
107
|
+
identity.setBalance(10000000);
|
|
106
108
|
identity.setPublicKeys([identityPublicKey]);
|
|
107
109
|
|
|
108
|
-
const blockTime = Date.now();
|
|
109
|
-
|
|
110
|
-
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
111
|
-
stateRepositoryMock.fetchIdentity.resolves(identity);
|
|
112
|
-
stateRepositoryMock.fetchIdentityBalance.resolves(identity.getBalance());
|
|
113
|
-
stateRepositoryMock.fetchLatestPlatformBlockTime.resolves(blockTime);
|
|
114
|
-
stateRepositoryMock.fetchDataContract.resolves(null);
|
|
115
|
-
|
|
116
|
-
const blsAdapter = await getBlsAdapterMock();
|
|
117
|
-
|
|
118
110
|
dpp = new DashPlatformProtocol(
|
|
119
|
-
blsAdapter,
|
|
120
|
-
stateRepositoryMock,
|
|
121
111
|
{ generate: () => crypto.randomBytes(32) },
|
|
122
112
|
1,
|
|
123
113
|
);
|
|
124
114
|
});
|
|
125
115
|
|
|
126
|
-
describe('createFromObject', () => {
|
|
116
|
+
describe.skip('createFromObject', () => {
|
|
127
117
|
it('should create State Transition from plain object', async () => {
|
|
128
118
|
const object = dataContractCreateTransition.toObject();
|
|
129
119
|
const result = await dpp.stateTransition.createFromObject(
|
|
@@ -137,7 +127,7 @@ describe('StateTransitionFacade', () => {
|
|
|
137
127
|
});
|
|
138
128
|
|
|
139
129
|
describe('createFromBuffer', () => {
|
|
140
|
-
it('should create State Transition from
|
|
130
|
+
it('should create Data Contract State Transition from buffer', async () => {
|
|
141
131
|
const result = await dpp.stateTransition.createFromBuffer(
|
|
142
132
|
dataContractCreateTransition.toBuffer(),
|
|
143
133
|
);
|
|
@@ -148,7 +138,7 @@ describe('StateTransitionFacade', () => {
|
|
|
148
138
|
});
|
|
149
139
|
});
|
|
150
140
|
|
|
151
|
-
describe('validate', () => {
|
|
141
|
+
describe.skip('validate', () => {
|
|
152
142
|
it('should return invalid result if State Transition structure is invalid', async () => {
|
|
153
143
|
const rawStateTransition = dataContractCreateTransition.toObject();
|
|
154
144
|
rawStateTransition.protocolVersion = 100;
|
|
@@ -228,7 +218,7 @@ describe('StateTransitionFacade', () => {
|
|
|
228
218
|
});
|
|
229
219
|
});
|
|
230
220
|
|
|
231
|
-
describe('validateBasic', () => {
|
|
221
|
+
describe.skip('validateBasic', () => {
|
|
232
222
|
it('should validate State Transition', async () => {
|
|
233
223
|
const result = await dpp.stateTransition.validateBasic(
|
|
234
224
|
dataContractCreateTransition.toObject(), executionContext,
|
|
@@ -239,7 +229,7 @@ describe('StateTransitionFacade', () => {
|
|
|
239
229
|
});
|
|
240
230
|
});
|
|
241
231
|
|
|
242
|
-
describe('validateSignature', () => {
|
|
232
|
+
describe.skip('validateSignature', () => {
|
|
243
233
|
it('should validate identity signed State Transition', async () => {
|
|
244
234
|
const result = await dpp.stateTransition.validateSignature(
|
|
245
235
|
dataContractCreateTransition, executionContext,
|
|
@@ -254,10 +244,7 @@ describe('StateTransitionFacade', () => {
|
|
|
254
244
|
'af432c476f65211f45f48f1d42c9c0b497e56696aa1736b40544ef1a496af837',
|
|
255
245
|
);
|
|
256
246
|
|
|
257
|
-
const
|
|
258
|
-
const identityCreateTransition = new IdentityCreateTransition(
|
|
259
|
-
identityCreateTransitionJS.toObject(),
|
|
260
|
-
);
|
|
247
|
+
const identityCreateTransition = await getIdentityCreateTransitionFixture(oneTimePrivateKey);
|
|
261
248
|
|
|
262
249
|
await identityCreateTransition.signByPrivateKey(
|
|
263
250
|
oneTimePrivateKey.toBuffer(),
|
|
@@ -273,7 +260,7 @@ describe('StateTransitionFacade', () => {
|
|
|
273
260
|
});
|
|
274
261
|
});
|
|
275
262
|
|
|
276
|
-
describe('validateFee', () => {
|
|
263
|
+
describe.skip('validateFee', () => {
|
|
277
264
|
it('should validate State Transition', async () => {
|
|
278
265
|
const result = await dpp.stateTransition.validateFee(
|
|
279
266
|
dataContractCreateTransition,
|
|
@@ -285,7 +272,7 @@ describe('StateTransitionFacade', () => {
|
|
|
285
272
|
});
|
|
286
273
|
});
|
|
287
274
|
|
|
288
|
-
describe('validateState', () => {
|
|
275
|
+
describe.skip('validateState', () => {
|
|
289
276
|
it('should validate State Transition', async () => {
|
|
290
277
|
const result = await dpp.stateTransition.validateState(
|
|
291
278
|
dataContractCreateTransition,
|
|
@@ -3,7 +3,7 @@ const { default: loadWasmDpp } = require('../../..');
|
|
|
3
3
|
|
|
4
4
|
let { generateTemporaryEcdsaPrivateKey } = require('../../..');
|
|
5
5
|
|
|
6
|
-
describe('generateTemporaryEcdsaPrivateKey', () => {
|
|
6
|
+
describe.skip('generateTemporaryEcdsaPrivateKey', () => {
|
|
7
7
|
beforeEach(async () => {
|
|
8
8
|
({ generateTemporaryEcdsaPrivateKey } = await loadWasmDpp());
|
|
9
9
|
});
|