@dashevo/wasm-dpp 0.25.0-dev.8 → 0.25.0-pr.1545.2
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 +34 -7
- package/README.md +12 -7
- package/dist/errors/patchConsensusErrors.js +94 -115
- package/dist/wasm/wasm_dpp.d.ts +2302 -4106
- package/dist/wasm/wasm_dpp.js +18149 -2639
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/bls/bls.js +48 -0
- package/lib/dpp.ts +1 -1
- package/lib/errors/patchConsensusErrors.ts +94 -93
- package/lib/test/bootstrap.js +5 -0
- package/lib/test/fixtures/getChainAssetLockProofFixture.js +20 -1
- package/lib/test/fixtures/getDataContractFixture.js +13 -9
- package/lib/test/fixtures/getDocumentTransitionsFixture.js +31 -1
- 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/getInstantAssetLockProofFixture.js +32 -12
- package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
- package/lib/test/mocks/createStateRepositoryMock.js +1 -0
- package/lib/test/mocks/getBlsAdapterMock.js +1 -1
- package/lib/utils/creditsConverter.js +14 -0
- package/lib/utils/hash.js +18 -0
- package/lib/wasm/wasm_dpp.d.ts +2302 -4106
- package/package.json +4 -6
- package/scripts/build-wasm.sh +30 -29
- package/src/bls_adapter.rs +1 -1
- package/src/dash_platform_protocol.rs +169 -192
- 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_document_error.rs +5 -0
- 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 +91 -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 +236 -229
- 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 +164 -152
- 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 +5 -11
- 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 +33 -11
- 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 +94 -75
- 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.rs +32 -17
- 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 +24 -15
- 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 +124 -127
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +72 -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 +11 -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 +68 -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 +9 -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 +9 -10
- 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/mod.rs +2 -2
- package/src/validation/validation_result.rs +17 -15
- 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 +33 -48
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +13 -24
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
- package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
- package/test/integration/identity/IdentityFacade.spec.js +33 -63
- 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 +5 -6
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +5 -9
- 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/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +34 -27
- 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/document/Document.spec.js +59 -70
- package/test/unit/document/DocumentFactory.spec.js +46 -111
- package/test/unit/document/errors/InvalidDocumentError.spec.js +9 -9
- package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +160 -158
- 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 +134 -136
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +4 -4
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +572 -595
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +6 -14
- package/test/unit/identity/Identity.spec.js +48 -83
- 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/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
- 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/assetLockProof/ChainAssetLockProof.spec.js +9 -28
- package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +19 -27
- 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/lib/test/fixtures/getDashPayContractFixture.js +0 -1
- package/lib/test/fixtures/getDashPayDocumentFixture.js +0 -1
- package/lib/test/fixtures/getDpnsContractFixture.js +0 -1
- package/lib/test/fixtures/getDpnsDocumentFixture.js +0 -1
- package/lib/test/fixtures/getFeatureFlagsContractFixture.js +0 -1
- package/lib/test/fixtures/getFeatureFlagsDocumentsFixture.js +0 -1
- package/lib/test/fixtures/getIdentityTopUpTransitionFixtureJs.js +0 -1
- package/lib/test/fixtures/getMasternodeRewardShareDocumentsFixture.js +0 -1
- package/lib/test/fixtures/getMasternodeRewardSharesContractFixture.js +0 -1
- package/lib/test/fixtures/getPreorderDocumentFixture.js +0 -1
- package/lib/test/fixtures/getRawTransactionFixture.js +0 -1
- package/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/DashPlatformProtocol.spec.js +0 -53
- package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +0 -195
- package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -500
- package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +0 -53
- package/test/integration/util/generateEntropy.spec.js +0 -17
- package/test/integration/util/serializer.spec.js +0 -24
- package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +0 -103
- package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +0 -84
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +0 -47
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +0 -49
- package/test/unit/dataTrigger/DataTrigger.spec.js +0 -132
- package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +0 -29
- package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +0 -107
- package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +0 -382
- package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +0 -99
- package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +0 -113
- package/test/unit/dataTrigger/rejectDataTrigger.spec.js +0 -51
- package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +0 -202
- package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +0 -257
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +0 -94
- package/test/unit/errors/consensus/codes.spec.js +0 -102
- package/test/unit/identity/creditsConverter.spec.js +0 -34
- package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +0 -89
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +0 -142
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +0 -100
- package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +0 -36
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +0 -63
- package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +0 -47
- package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
|
@@ -1,77 +1,42 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
|
-
const getIdentityFixture = require('
|
|
2
|
+
const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
|
|
3
3
|
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
|
|
7
|
-
const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
|
|
8
|
-
const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
|
|
4
|
+
const getInstantAssetLockProofFixture = require('../../../lib/test/fixtures/getInstantAssetLockProofFixture');
|
|
5
|
+
const getChainAssetLockProofFixture = require('../../../lib/test/fixtures/getChainAssetLockProofFixture');
|
|
9
6
|
|
|
10
|
-
const {
|
|
7
|
+
const {
|
|
8
|
+
Identity, InstantAssetLockProof, ChainAssetLockProof, IdentityUpdateTransition,
|
|
9
|
+
IdentityCreateTransition, IdentityTopUpTransition, IdentityPublicKeyWithWitness,
|
|
10
|
+
DashPlatformProtocol, ValidationResult,
|
|
11
|
+
} = require('../../..');
|
|
11
12
|
|
|
12
13
|
describe('IdentityFacade', () => {
|
|
13
14
|
let dpp;
|
|
14
|
-
let stateRepositoryMock;
|
|
15
15
|
|
|
16
16
|
let identity;
|
|
17
17
|
let instantAssetLockProof;
|
|
18
18
|
let chainAssetLockProof;
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
let InstantAssetLockProof;
|
|
22
|
-
let IdentityCreateTransition;
|
|
23
|
-
let IdentityTopUpTransition;
|
|
24
|
-
let IdentityUpdateTransition;
|
|
25
|
-
let IdentityPublicKeyWithWitness;
|
|
26
|
-
let ChainAssetLockProof;
|
|
27
|
-
let DashPlatformProtocol;
|
|
28
|
-
let ValidationResult;
|
|
29
|
-
|
|
30
|
-
before(async () => {
|
|
31
|
-
({
|
|
32
|
-
Identity, InstantAssetLockProof, ChainAssetLockProof, IdentityUpdateTransition,
|
|
33
|
-
IdentityCreateTransition, IdentityTopUpTransition, IdentityPublicKeyWithWitness,
|
|
34
|
-
DashPlatformProtocol, ValidationResult,
|
|
35
|
-
} = await loadWasmDpp());
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
beforeEach(async function beforeEach() {
|
|
39
|
-
const rawTransaction = '030000000137feb5676d0851337ea3c9a992496aab7a0b3eee60aeeb9774000b7f4bababa5000000006b483045022100d91557de37645c641b948c6cd03b4ae3791a63a650db3e2fee1dcf5185d1b10402200e8bd410bf516ca61715867666d31e44495428ce5c1090bf2294a829ebcfa4ef0121025c3cc7fbfc52f710c941497fd01876c189171ea227458f501afcb38a297d65b4ffffffff021027000000000000166a14152073ca2300a86b510fa2f123d3ea7da3af68dcf77cb0090a0000001976a914152073ca2300a86b510fa2f123d3ea7da3af68dc88ac00000000';
|
|
40
|
-
|
|
41
|
-
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
42
|
-
stateRepositoryMock.fetchTransaction.resolves({
|
|
43
|
-
data: Buffer.from(rawTransaction, 'hex'),
|
|
44
|
-
height: 42,
|
|
45
|
-
});
|
|
46
|
-
|
|
20
|
+
beforeEach(async () => {
|
|
47
21
|
dpp = new DashPlatformProtocol(
|
|
48
|
-
getBlsAdapterMock(),
|
|
49
|
-
stateRepositoryMock,
|
|
50
22
|
{ generate: () => crypto.randomBytes(32) },
|
|
51
23
|
1,
|
|
52
24
|
);
|
|
53
25
|
|
|
54
26
|
const chainAssetLockProofJS = getChainAssetLockProofFixture();
|
|
55
|
-
|
|
56
|
-
instantAssetLockProof = new InstantAssetLockProof(instantAssetLockProofJS.toObject());
|
|
27
|
+
instantAssetLockProof = await getInstantAssetLockProofFixture();
|
|
57
28
|
chainAssetLockProof = new ChainAssetLockProof(chainAssetLockProofJS.toObject());
|
|
58
29
|
|
|
59
|
-
|
|
60
|
-
identityObject.id = instantAssetLockProof.createIdentifier();
|
|
61
|
-
identity = new Identity(identityObject);
|
|
62
|
-
identity.setAssetLockProof(instantAssetLockProof);
|
|
30
|
+
identity = await getIdentityFixture(instantAssetLockProof.createIdentifier());
|
|
63
31
|
identity.setBalance(0);
|
|
64
32
|
});
|
|
65
33
|
|
|
66
34
|
describe('#create', () => {
|
|
67
35
|
it('should create Identity', () => {
|
|
68
|
-
const publicKeys = identity.getPublicKeys()
|
|
69
|
-
.map((identityPublicKey) => ({
|
|
70
|
-
...identityPublicKey.toObject(),
|
|
71
|
-
}));
|
|
36
|
+
const publicKeys = identity.getPublicKeys();
|
|
72
37
|
|
|
73
38
|
const result = dpp.identity.create(
|
|
74
|
-
instantAssetLockProof,
|
|
39
|
+
instantAssetLockProof.createIdentifier(),
|
|
75
40
|
publicKeys,
|
|
76
41
|
);
|
|
77
42
|
|
|
@@ -80,7 +45,8 @@ describe('IdentityFacade', () => {
|
|
|
80
45
|
});
|
|
81
46
|
});
|
|
82
47
|
|
|
83
|
-
|
|
48
|
+
// TODO(versioning): obsolete?
|
|
49
|
+
describe.skip('#createFromObject', () => {
|
|
84
50
|
it('should create Identity from plain object', () => {
|
|
85
51
|
const result = dpp.identity.createFromObject(identity.toObject());
|
|
86
52
|
|
|
@@ -105,7 +71,8 @@ describe('IdentityFacade', () => {
|
|
|
105
71
|
});
|
|
106
72
|
});
|
|
107
73
|
|
|
108
|
-
|
|
74
|
+
// TODO(versioning): restore
|
|
75
|
+
describe.skip('#validate', () => {
|
|
109
76
|
it('should validate Identity', async () => {
|
|
110
77
|
const result = await dpp.identity.validate(identity);
|
|
111
78
|
|
|
@@ -151,7 +118,10 @@ describe('IdentityFacade', () => {
|
|
|
151
118
|
|
|
152
119
|
describe('#createIdentityCreateTransition', () => {
|
|
153
120
|
it('should create IdentityCreateTransition from Identity model', () => {
|
|
154
|
-
const stateTransition = dpp.identity.createIdentityCreateTransition(
|
|
121
|
+
const stateTransition = dpp.identity.createIdentityCreateTransition(
|
|
122
|
+
identity,
|
|
123
|
+
instantAssetLockProof,
|
|
124
|
+
);
|
|
155
125
|
|
|
156
126
|
expect(stateTransition).to.be.instanceOf(IdentityCreateTransition);
|
|
157
127
|
const keysToExpect = stateTransition.getPublicKeys()
|
|
@@ -161,8 +131,13 @@ describe('IdentityFacade', () => {
|
|
|
161
131
|
return keyObject;
|
|
162
132
|
});
|
|
163
133
|
|
|
164
|
-
|
|
165
|
-
|
|
134
|
+
const actualKeys = identity.getPublicKeys().map((key) => {
|
|
135
|
+
const keyObject = key.toObject();
|
|
136
|
+
delete keyObject.disabledAt;
|
|
137
|
+
return keyObject;
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
expect(keysToExpect).to.deep.equal(actualKeys);
|
|
166
141
|
expect(stateTransition.getAssetLockProof().toObject()).to.deep.equal(
|
|
167
142
|
instantAssetLockProof.toObject(),
|
|
168
143
|
);
|
|
@@ -188,16 +163,11 @@ describe('IdentityFacade', () => {
|
|
|
188
163
|
|
|
189
164
|
describe('#createIdentityUpdateTransition', () => {
|
|
190
165
|
it('should create IdentityUpdateTransition from identity id and public keys', () => {
|
|
166
|
+
const key = new IdentityPublicKeyWithWitness(1);
|
|
167
|
+
key.setData(Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'));
|
|
168
|
+
|
|
191
169
|
const publicKeys = {
|
|
192
|
-
add: [
|
|
193
|
-
id: 3,
|
|
194
|
-
type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
|
|
195
|
-
data: Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'),
|
|
196
|
-
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
197
|
-
securityLevel: IdentityPublicKey.SECURITY_LEVELS.CRITICAL,
|
|
198
|
-
readOnly: false,
|
|
199
|
-
signature: Buffer.alloc(0),
|
|
200
|
-
})],
|
|
170
|
+
add: [key],
|
|
201
171
|
};
|
|
202
172
|
|
|
203
173
|
const stateTransition = dpp.identity
|
|
@@ -214,7 +184,7 @@ describe('IdentityFacade', () => {
|
|
|
214
184
|
);
|
|
215
185
|
expect(
|
|
216
186
|
stateTransition.getPublicKeysToAdd().map((pk) => pk.toObject()),
|
|
217
|
-
).to.deep.equal(publicKeys.add.map((
|
|
187
|
+
).to.deep.equal(publicKeys.add.map((k) => k.toObject()));
|
|
218
188
|
expect(stateTransition.getPublicKeyIdsToDisable()).to.deep.equal([]);
|
|
219
189
|
expect(stateTransition.getPublicKeysDisabledAt()).to.equal(undefined);
|
|
220
190
|
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
const { PrivateKey } = require('@dashevo/dashcore-lib');
|
|
2
2
|
|
|
3
|
-
const createStateRepositoryMock = require('
|
|
4
|
-
const getIdentityCreateTransitionFixture = require('
|
|
3
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
4
|
+
const getIdentityCreateTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
5
5
|
|
|
6
6
|
const { expectValidationError, expectJsonSchemaError } = require('../../../../../../../lib/test/expect/expectError');
|
|
7
7
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
8
8
|
const getBlsAdapterMock = require('../../../../../../../lib/test/mocks/getBlsAdapterMock');
|
|
9
9
|
|
|
10
|
-
describe('validateIdentityCreateTransitionBasicFactory', () => {
|
|
10
|
+
describe.skip('validateIdentityCreateTransitionBasicFactory', () => {
|
|
11
11
|
let rawStateTransition;
|
|
12
12
|
let stateTransition;
|
|
13
13
|
|
|
@@ -18,7 +18,6 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
|
|
|
18
18
|
let validateIdentityCreateTransitionBasic;
|
|
19
19
|
|
|
20
20
|
let StateTransitionExecutionContext;
|
|
21
|
-
let IdentityCreateTransition;
|
|
22
21
|
let IdentityPublicKey;
|
|
23
22
|
let UnsupportedProtocolVersionError;
|
|
24
23
|
let InvalidInstantAssetLockProofSignatureError;
|
|
@@ -30,7 +29,6 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
|
|
|
30
29
|
|
|
31
30
|
before(async () => {
|
|
32
31
|
({
|
|
33
|
-
IdentityCreateTransition,
|
|
34
32
|
StateTransitionExecutionContext,
|
|
35
33
|
UnsupportedProtocolVersionError,
|
|
36
34
|
InvalidInstantAssetLockProofSignatureError,
|
|
@@ -56,7 +54,8 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
|
|
|
56
54
|
);
|
|
57
55
|
});
|
|
58
56
|
|
|
59
|
-
beforeEach(async function () {
|
|
57
|
+
beforeEach(async function beforeEach() {
|
|
58
|
+
this.timeout(20000);
|
|
60
59
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
61
60
|
stateRepositoryMock.verifyInstantLock.resolves(true);
|
|
62
61
|
stateRepositoryMock.isAssetLockTransactionOutPointAlreadyUsed.resolves(false);
|
|
@@ -68,8 +67,7 @@ describe('validateIdentityCreateTransitionBasicFactory', () => {
|
|
|
68
67
|
const validator = new IdentityCreateTransitionBasicValidator(stateRepositoryMock, blsAdapter);
|
|
69
68
|
validateIdentityCreateTransitionBasic = (st, context) => validator.validate(st, context);
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
stateTransition = new IdentityCreateTransition(stateTransitionJS.toObject());
|
|
70
|
+
stateTransition = await getIdentityCreateTransitionFixture();
|
|
73
71
|
|
|
74
72
|
const privateKey = new PrivateKey('9b67f852093bc61cea0eeca38599dbfba0de28574d2ed9b99d10d33dc1bde7b2');
|
|
75
73
|
const publicKey = privateKey.toPublicKey();
|
|
@@ -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/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;
|
|
@@ -37,7 +36,7 @@ describe('validateInstantAssetLockProofStructureFactory', () => {
|
|
|
37
36
|
});
|
|
38
37
|
|
|
39
38
|
beforeEach(async function beforeEach() {
|
|
40
|
-
const assetLock = getInstantAssetLockFixture();
|
|
39
|
+
const assetLock = await getInstantAssetLockFixture();
|
|
41
40
|
transaction = assetLock.getTransaction();
|
|
42
41
|
|
|
43
42
|
rawProof = assetLock.toObject();
|
|
@@ -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
|
-
const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
|
|
7
|
-
|
|
8
5
|
const { expect } = require('chai');
|
|
6
|
+
const BlsSignatures = require('../../../../lib/bls/bls');
|
|
7
|
+
|
|
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
|
|