@dashevo/wasm-dpp 0.25.0-dev.8 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.toml +33 -7
- package/README.md +11 -6
- package/dist/errors/patchConsensusErrors.js +94 -115
- package/dist/wasm/wasm_dpp.d.ts +2213 -4113
- package/dist/wasm/wasm_dpp.js +17748 -2639
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/dpp.ts +1 -1
- package/lib/errors/patchConsensusErrors.ts +94 -93
- package/lib/test/bootstrap.js +5 -0
- package/lib/test/fixtures/getDataContractFixture.js +11 -5
- package/lib/test/fixtures/getDocumentsFixture.js +9 -5
- package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +14 -20
- package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +14 -0
- package/lib/test/fixtures/getIdentityFixture.js +21 -32
- package/lib/test/fixtures/getIdentityTopUpTransitionFixture.js +7 -10
- package/lib/test/fixtures/getIdentityUpdateTransitionFixture.js +13 -28
- package/lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture.js +7 -9
- package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
- package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
- package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
- package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
- package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
- package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
- package/lib/test/mocks/createStateRepositoryMock.js +1 -0
- package/lib/wasm/wasm_dpp.d.ts +2213 -4113
- package/package.json +6 -6
- package/scripts/build-wasm.sh +30 -29
- package/src/bls_adapter.rs +1 -1
- package/src/dash_platform_protocol.rs +173 -196
- package/src/data_contract/data_contract.rs +309 -199
- package/src/data_contract/data_contract_facade.rs +28 -47
- package/src/data_contract/errors/mod.rs +1 -0
- package/src/data_contract/mod.rs +2 -2
- package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +92 -79
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +84 -77
- package/src/data_contract_factory/data_contract_factory.rs +43 -83
- package/src/document/document_facade.rs +81 -76
- package/src/document/errors/document_already_exists_error.rs +6 -6
- package/src/document/errors/document_no_revision_error.rs +1 -0
- package/src/document/errors/document_not_provided_error.rs +6 -6
- package/src/document/errors/invalid_document_action_error.rs +11 -7
- package/src/document/errors/invalid_initial_revision_error.rs +4 -4
- package/src/document/errors/mismatch_owners_ids_error.rs +5 -8
- package/src/document/errors/mod.rs +5 -0
- package/src/document/errors/revision_absent_error.rs +6 -6
- package/src/document/errors/trying_to_delete_immutable_document_error.rs +19 -0
- package/src/document/errors/trying_to_replace_immutable_document_error.rs +4 -4
- package/src/document/extended_document.rs +76 -76
- package/src/document/factory.rs +140 -119
- package/src/document/generate_document_id.rs +2 -2
- package/src/document/mod.rs +164 -150
- package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +50 -48
- package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +14 -14
- package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +50 -38
- package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +165 -153
- package/src/document/state_transition/document_batch_transition/mod.rs +232 -222
- package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -9
- package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -10
- package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -9
- package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -9
- package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -7
- package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -9
- package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -9
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -9
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -9
- package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -9
- package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -9
- package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -9
- package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -9
- package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -9
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -9
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -9
- package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +3 -11
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -9
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +2 -10
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -9
- package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_proof_chain_lock_validation_error.rs +1 -1
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -9
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -9
- package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -9
- package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -9
- package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -9
- package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -9
- package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +7 -15
- package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -9
- package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -9
- package/src/errors/consensus/basic/json_schema_error.rs +1 -9
- package/src/errors/consensus/basic/mod.rs +2 -0
- package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -9
- package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +2 -11
- package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +1 -9
- package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -9
- package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -9
- package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -9
- package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
- package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -9
- package/src/errors/consensus/consensus_error.rs +44 -21
- package/src/errors/consensus/deserialize.rs +2 -1
- package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -2
- package/src/errors/consensus/signature/basic_bls_error.rs +1 -9
- package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -9
- package/src/errors/consensus/signature/identity_not_found_error.rs +4 -2
- package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -9
- package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -2
- package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +42 -0
- package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +44 -0
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -1
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -1
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -1
- package/src/errors/consensus/state/data_contract/mod.rs +7 -1
- package/src/errors/consensus/state/document/document_already_present_error.rs +1 -9
- package/src/errors/consensus/state/document/document_not_found_error.rs +1 -9
- package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -9
- package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -9
- package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +34 -0
- package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -9
- package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -9
- package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -12
- package/src/errors/consensus/state/document/mod.rs +2 -0
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -9
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -9
- package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -9
- package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -9
- package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -9
- package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -9
- package/src/errors/consensus/value_error.rs +1 -9
- package/src/errors/from.rs +12 -8
- package/src/errors/mod.rs +7 -7
- package/src/errors/value_error.rs +5 -0
- package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +1 -2
- package/src/identity/factory_utils.rs +13 -13
- package/src/identity/identity.rs +275 -0
- package/src/identity/identity_facade.rs +87 -70
- package/src/identity/identity_factory.rs +74 -54
- package/src/identity/identity_public_key/mod.rs +87 -64
- package/src/identity/mod.rs +25 -247
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +0 -1
- package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +3 -1
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +2 -2
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +0 -1
- package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +3 -1
- package/src/identity/state_transition/asset_lock_proof/mod.rs +112 -116
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +71 -65
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +0 -1
- package/src/identity/state_transition/identity_create_transition/mod.rs +3 -3
- package/src/identity/state_transition/identity_create_transition/to_object.rs +10 -12
- package/src/identity/state_transition/identity_credit_transfer_transition/apply_identity_credit_transfer_transition.rs +31 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_basic_validator.rs +66 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/identity_credit_transfer_transition_state_validator.rs +44 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +8 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +49 -0
- package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +344 -0
- package/src/identity/state_transition/identity_public_key_transitions.rs +89 -75
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +67 -62
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +0 -2
- package/src/identity/state_transition/identity_topup_transition/mod.rs +3 -3
- package/src/identity/state_transition/identity_topup_transition/to_object.rs +8 -12
- package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
- package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +99 -104
- package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
- package/src/identity/state_transition/identity_update_transition/to_object.rs +15 -19
- package/src/identity/state_transition/mod.rs +5 -2
- package/src/identity/state_transition/transition_types.rs +34 -0
- package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
- package/src/lib.rs +10 -11
- package/src/metadata.rs +3 -3
- package/src/protocol_version.rs +7 -0
- package/src/state_transition/conversion.rs +11 -1
- package/src/state_transition/errors/invalid_state_transition_error.rs +12 -1
- package/src/state_transition/fee/operations/pre_calculated_operation.rs +2 -1
- package/src/state_transition/mod.rs +137 -139
- package/src/state_transition/state_transition_facade.rs +11 -11
- package/src/state_transition/state_transition_factory.rs +142 -153
- package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
- package/src/state_transition/validation/validate_state_transition_identity_signature.rs +28 -10
- package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
- package/src/utils.rs +7 -8
- package/src/validation/validation_result.rs +1 -0
- package/test/integration/dataContract/DataContractFacade.spec.js +25 -32
- package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +6 -6
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +11 -10
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +3 -3
- package/test/integration/document/Document.spec.js +3 -3
- package/test/integration/document/DocumentFacade.spec.js +39 -38
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +6 -7
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +15 -15
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +2 -2
- package/test/integration/document/validation/validateDocumentFactory.spec.js +3 -3
- package/test/integration/identity/IdentityFacade.spec.js +33 -62
- package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +6 -8
- package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +4 -7
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +21 -24
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
- package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +4 -4
- package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +7 -10
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +4 -5
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +6 -6
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +3 -7
- package/test/integration/identity/validation/validateIdentityFactory.spec.js +7 -6
- package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +5 -25
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +45 -58
- package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
- package/test/unit/DashPlatformProtocol.spec.js +10 -25
- package/test/unit/dataContract/DataContract.spec.js +119 -148
- package/test/unit/dataContract/DataContractFactory.spec.js +42 -31
- package/test/unit/dataContract/createDataContract.spec.js +6 -6
- package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +34 -26
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +7 -9
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +10 -9
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +28 -19
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +7 -7
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +5 -5
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +11 -10
- package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +7 -7
- package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +1 -1
- package/test/unit/document/Document.spec.js +31 -20
- package/test/unit/document/DocumentFactory.spec.js +45 -110
- package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +6 -7
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +11 -12
- package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +9 -9
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
- package/test/unit/identity/Identity.spec.js +46 -81
- package/test/unit/identity/IdentityFactory.spec.js +61 -75
- package/test/unit/identity/IdentityPublicKey.spec.js +34 -48
- package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +30 -63
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +9 -15
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +5 -9
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -35
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +9 -13
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +5 -9
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +24 -46
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +4 -4
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
- package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +130 -0
- package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
- package/test/unit/stateTransition/StateTransitionFactory.spec.js +16 -22
- package/test/unit/stateTransition/createStateTransitionFactory.spec.js +43 -21
- package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +3 -3
- package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +5 -17
- package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +9 -5
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +8 -14
- package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +1 -1
- package/test/unit/version/validateProtocolVersionFactory.spec.js +1 -1
- package/test-d/index.test-d.ts +2 -2
- package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +0 -45
- package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +0 -49
- package/src/decode_protocol_entity.rs +0 -25
- package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
- package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
- package/test/integration/util/generateEntropy.spec.js +0 -17
- package/test/integration/util/serializer.spec.js +0 -24
- package/test/unit/decodeProtocolEntityFactory.spec.js +0 -69
- package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
- package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
3
2
|
|
|
4
|
-
const getDataContractFixture = require('
|
|
3
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
|
|
5
4
|
const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
|
|
6
5
|
|
|
7
|
-
const { default: loadWasmDpp } = require('
|
|
6
|
+
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
7
|
+
const { getLatestProtocolVersion } = require('../../../../../../..');
|
|
8
8
|
|
|
9
|
-
describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
9
|
+
describe.skip('validateDataContractCreateTransitionBasicFactory', () => {
|
|
10
10
|
let stateTransition;
|
|
11
11
|
let rawStateTransition;
|
|
12
12
|
let dataContract;
|
|
@@ -29,11 +29,11 @@ describe('validateDataContractCreateTransitionBasicFactory', () => {
|
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
beforeEach(async () => {
|
|
32
|
-
dataContract = getDataContractFixture();
|
|
32
|
+
dataContract = await getDataContractFixture();
|
|
33
33
|
rawDataContract = dataContract.toObject();
|
|
34
34
|
|
|
35
35
|
stateTransition = new DataContractCreateTransition({
|
|
36
|
-
protocolVersion:
|
|
36
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
37
37
|
dataContract: rawDataContract,
|
|
38
38
|
entropy: dataContract.getEntropy(),
|
|
39
39
|
signature: Buffer.alloc(65),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
|
|
1
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
2
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
|
|
4
3
|
const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
|
|
5
4
|
|
|
6
|
-
const { default: loadWasmDpp } = require('
|
|
5
|
+
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
6
|
+
const { getLatestProtocolVersion } = require('../../../../../../..');
|
|
7
7
|
|
|
8
|
-
describe('validateDataContractUpdateTransitionBasicFactory', () => {
|
|
8
|
+
describe.skip('validateDataContractUpdateTransitionBasicFactory', () => {
|
|
9
9
|
let DataContractUpdateTransition;
|
|
10
10
|
let validateDataContractUpdateTransitionBasic;
|
|
11
11
|
let ValidationResult;
|
|
@@ -39,13 +39,13 @@ describe('validateDataContractUpdateTransitionBasicFactory', () => {
|
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
beforeEach(async function beforeEach() {
|
|
42
|
-
dataContract = getDataContractFixture();
|
|
42
|
+
dataContract = await getDataContractFixture();
|
|
43
43
|
|
|
44
44
|
rawDataContract = dataContract.toObject();
|
|
45
45
|
rawDataContract.version += 1;
|
|
46
46
|
|
|
47
47
|
stateTransition = new DataContractUpdateTransition({
|
|
48
|
-
protocolVersion:
|
|
48
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
49
49
|
dataContract: rawDataContract,
|
|
50
50
|
signature: Buffer.alloc(65),
|
|
51
51
|
signaturePublicKeyId: 0,
|
|
@@ -54,10 +54,11 @@ describe('validateDataContractUpdateTransitionBasicFactory', () => {
|
|
|
54
54
|
rawStateTransition = stateTransition.toObject();
|
|
55
55
|
|
|
56
56
|
const validator = new DataContractValidator();
|
|
57
|
-
const dataContractFactory = new DataContractFactory(
|
|
58
|
-
const
|
|
57
|
+
const dataContractFactory = new DataContractFactory(getLatestProtocolVersion(), validator);
|
|
58
|
+
const reCreatedDataContract = await dataContractFactory
|
|
59
|
+
.createFromBuffer(dataContract.toBuffer());
|
|
59
60
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
60
|
-
stateRepositoryMock.fetchDataContract.resolves(
|
|
61
|
+
stateRepositoryMock.fetchDataContract.resolves(reCreatedDataContract);
|
|
61
62
|
|
|
62
63
|
executionContext = new StateTransitionExecutionContext();
|
|
63
64
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const lodashCloneDeep = require('lodash/cloneDeep');
|
|
2
|
-
const getDataContractFixture = require('
|
|
2
|
+
const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
|
|
3
3
|
const { expectJsonSchemaError, expectValidationError } = require('../../../../lib/test/expect/expectError');
|
|
4
4
|
|
|
5
5
|
const { default: loadWasmDpp } = require('../../../../dist');
|
|
6
6
|
|
|
7
|
-
describe('validateDataContractFactory', () => {
|
|
7
|
+
describe.skip('validateDataContractFactory', () => {
|
|
8
8
|
let dataContract;
|
|
9
9
|
let validateDataContract;
|
|
10
10
|
|
|
@@ -37,7 +37,7 @@ describe('validateDataContractFactory', () => {
|
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
beforeEach(async () => {
|
|
40
|
-
dataContract = getDataContractFixture();
|
|
40
|
+
dataContract = await getDataContractFixture();
|
|
41
41
|
|
|
42
42
|
const dataContractValidator = new DataContractValidator();
|
|
43
43
|
|
|
@@ -32,7 +32,7 @@ describe('ExtendedDocument', () => {
|
|
|
32
32
|
document.setMetadata(metadataFixture);
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
describe('#toJSON', () => {
|
|
35
|
+
describe.skip('#toJSON', () => {
|
|
36
36
|
it('should return json document - Rust', () => {
|
|
37
37
|
const result = document.toJSON();
|
|
38
38
|
|
|
@@ -54,7 +54,8 @@ describe('ExtendedDocument', () => {
|
|
|
54
54
|
const result = document.toObject();
|
|
55
55
|
|
|
56
56
|
expect(result).to.deep.equal({
|
|
57
|
-
$
|
|
57
|
+
$createdAt: null, // TODO: it should be omitted
|
|
58
|
+
$updatedAt: null,
|
|
58
59
|
$dataContractId: dataContract.getId().toBuffer(),
|
|
59
60
|
$id: document.getId().toBuffer(),
|
|
60
61
|
$ownerId: document.getOwnerId().toBuffer(),
|
|
@@ -77,7 +78,6 @@ describe('ExtendedDocument', () => {
|
|
|
77
78
|
expect(result.$id.toBuffer()).to.deep.equal(document.getId().toBuffer());
|
|
78
79
|
expect(result.$ownerId.toBuffer()).to.deep.equal(document.getOwnerId().toBuffer());
|
|
79
80
|
expect(result.identifierField.toBuffer()).to.deep.equal(document.get('identifierField').toBuffer());
|
|
80
|
-
expect(result.$protocolVersion).to.deep.equal(document.getProtocolVersion());
|
|
81
81
|
expect(result.$revision).to.deep.equal(document.getRevision());
|
|
82
82
|
expect(result.$type).to.deep.equal(document.getType());
|
|
83
83
|
expect(result.byteArrayField).to.deep.equal(document.get('byteArrayField'));
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
|
-
const generateRandomIdentifier = require('
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
const generateRandomIdentifier = require('../../../lib/test/fixtures/js/generateRandomIdentifier');
|
|
3
|
+
const getDataContractFixture = require('../../../lib/test/fixtures/js/getDataContractFixture');
|
|
4
|
+
const getDocumentsFixture = require('../../../lib/test/fixtures/js/getDocumentsFixture');
|
|
5
|
+
const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
|
+
|
|
7
|
+
const {
|
|
8
|
+
ExtendedDocument,
|
|
9
|
+
DataContract,
|
|
10
|
+
Identifier,
|
|
11
|
+
ValidationResult,
|
|
12
|
+
DocumentsBatchTransition,
|
|
13
|
+
DashPlatformProtocol,
|
|
14
|
+
DataContractNotPresentError,
|
|
15
|
+
} = require('../../../dist');
|
|
16
|
+
// const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
|
|
17
|
+
|
|
18
|
+
// let ExtendedDocument;
|
|
19
|
+
// let DataContract;
|
|
20
|
+
// let Identifier;
|
|
21
|
+
// let ValidationResult;
|
|
22
|
+
// let DocumentsBatchTransition;
|
|
23
|
+
// let DashPlatformProtocol;
|
|
24
|
+
// let DataContractNotPresentError;
|
|
18
25
|
|
|
19
26
|
describe('DocumentFacade', () => {
|
|
20
27
|
let dpp;
|
|
@@ -24,31 +31,24 @@ describe('DocumentFacade', () => {
|
|
|
24
31
|
let dataContract;
|
|
25
32
|
let ownerId;
|
|
26
33
|
let stateRepositoryMock;
|
|
27
|
-
let blsAdapter;
|
|
28
34
|
|
|
29
35
|
beforeEach(async function beforeEach() {
|
|
30
|
-
({
|
|
31
|
-
ExtendedDocument,
|
|
32
|
-
DataContract,
|
|
33
|
-
Identifier,
|
|
34
|
-
ValidationResult,
|
|
35
|
-
DocumentsBatchTransition,
|
|
36
|
-
DashPlatformProtocol,
|
|
37
|
-
DataContractNotPresentError,
|
|
38
|
-
} = await loadWasmDpp());
|
|
39
|
-
|
|
40
36
|
const ownerIdJs = generateRandomIdentifier();
|
|
41
37
|
ownerId = new Identifier(ownerIdJs.toBuffer());
|
|
42
38
|
const dataContractJs = getDataContractFixture(ownerIdJs);
|
|
43
|
-
|
|
39
|
+
const dataContractObject = dataContractJs.toObject();
|
|
40
|
+
dataContract = new DataContract({
|
|
41
|
+
$format_version: '0',
|
|
42
|
+
id: dataContractObject.$id,
|
|
43
|
+
version: 1,
|
|
44
|
+
ownerId: dataContractObject.ownerId,
|
|
45
|
+
documentSchemas: dataContractObject.documents,
|
|
46
|
+
});
|
|
44
47
|
|
|
45
48
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
46
49
|
stateRepositoryMock.fetchDataContract.resolves(dataContract);
|
|
47
50
|
|
|
48
|
-
blsAdapter = await getBlsAdapterMock();
|
|
49
51
|
dpp = new DashPlatformProtocol(
|
|
50
|
-
blsAdapter,
|
|
51
|
-
stateRepositoryMock,
|
|
52
52
|
{ generate: () => crypto.randomBytes(32) },
|
|
53
53
|
1,
|
|
54
54
|
);
|
|
@@ -66,6 +66,7 @@ describe('DocumentFacade', () => {
|
|
|
66
66
|
it('should create Document - Rust', async () => {
|
|
67
67
|
const documentType = document.getType();
|
|
68
68
|
const documentData = document.getData();
|
|
69
|
+
|
|
69
70
|
const result = dpp.document.create(
|
|
70
71
|
dataContract,
|
|
71
72
|
ownerId,
|
|
@@ -80,7 +81,7 @@ describe('DocumentFacade', () => {
|
|
|
80
81
|
});
|
|
81
82
|
});
|
|
82
83
|
|
|
83
|
-
describe('createFromObject', () => {
|
|
84
|
+
describe.skip('createFromObject', () => {
|
|
84
85
|
it('should throw MissingOption if stateRepository is not set - Rust', async () => {
|
|
85
86
|
// not applicable
|
|
86
87
|
});
|
|
@@ -95,7 +96,7 @@ describe('DocumentFacade', () => {
|
|
|
95
96
|
});
|
|
96
97
|
});
|
|
97
98
|
|
|
98
|
-
describe('createFromBuffer', () => {
|
|
99
|
+
describe.skip('createFromBuffer', () => {
|
|
99
100
|
it('should throw MissingOption if stateRepository is not set - Rust', async () => {
|
|
100
101
|
// not applicable
|
|
101
102
|
});
|
|
@@ -116,14 +117,14 @@ describe('DocumentFacade', () => {
|
|
|
116
117
|
});
|
|
117
118
|
|
|
118
119
|
expect(result).to.be.instanceOf(DocumentsBatchTransition);
|
|
119
|
-
expect(result.getTransitions().map((t) => t.toObject()))
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
// expect(result.getTransitions().map((t) => t.toObject()))
|
|
121
|
+
// .has.deep.members(getDocumentTransitionsFixture({
|
|
122
|
+
// create: documentsJs,
|
|
123
|
+
// }).map((t) => t.toObject()));
|
|
123
124
|
});
|
|
124
125
|
});
|
|
125
126
|
|
|
126
|
-
describe('validate', () => {
|
|
127
|
+
describe.skip('validate', () => {
|
|
127
128
|
it('should throw MissingOption if stateRepository is not set - Rust', async () => {
|
|
128
129
|
// not applicable
|
|
129
130
|
});
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
const
|
|
1
|
+
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
2
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/js/getDataContractFixture');
|
|
3
|
+
const getDocumentsFixture = require('../../../../../lib/test/fixtures/js/getDocumentsFixture');
|
|
2
4
|
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
|
|
6
|
-
|
|
7
|
-
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
5
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
6
|
+
const { IdentityPublicKey } = require('../../../../..');
|
|
8
7
|
|
|
9
8
|
let ExtendedDocument;
|
|
10
9
|
let DataContract;
|
|
@@ -68,7 +67,7 @@ describe('DocumentBatchTransition', () => {
|
|
|
68
67
|
});
|
|
69
68
|
});
|
|
70
69
|
|
|
71
|
-
describe('#getRequiredKeySecurityLevel', () => {
|
|
70
|
+
describe.skip('#getRequiredKeySecurityLevel', () => {
|
|
72
71
|
it('should return the highest security level of all transitions - Rust', () => {
|
|
73
72
|
stateTransitionFixture = documentFactory.createStateTransition({
|
|
74
73
|
create: [mediumSecurityDocumentFixture],
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
1
|
+
const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
|
|
2
|
+
const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/js/getDocumentsFixture');
|
|
3
|
+
const getDataContractFixture = require('../../../../../../../lib/test/fixtures/js/getDataContractFixture');
|
|
4
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
5
|
+
|
|
6
|
+
const { default: loadWasmDpp } = require('../../../../../../..');
|
|
7
|
+
const { getLatestProtocolVersion } = require('../../../../../../..');
|
|
9
8
|
const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
|
|
9
|
+
const generateRandomIdentifierAsync = require('../../../../../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
10
10
|
|
|
11
11
|
let DataContract;
|
|
12
12
|
let DocumentsBatchTransition;
|
|
@@ -26,7 +26,7 @@ let ValidationResult;
|
|
|
26
26
|
let ProtocolVersionValidator;
|
|
27
27
|
let ValueError;
|
|
28
28
|
|
|
29
|
-
describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
29
|
+
describe.skip('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
30
30
|
let dataContract;
|
|
31
31
|
let documents;
|
|
32
32
|
let rawStateTransition;
|
|
@@ -71,7 +71,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
|
71
71
|
executionContext = new StateTransitionExecutionContext();
|
|
72
72
|
|
|
73
73
|
stateTransition = new DocumentsBatchTransition({
|
|
74
|
-
protocolVersion:
|
|
74
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
75
75
|
ownerId,
|
|
76
76
|
contractId: dataContract.getId(),
|
|
77
77
|
transitions: documentTransitions.map((t) => t.toObject()),
|
|
@@ -425,7 +425,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
|
425
425
|
const [documentTransition] = documentTransitions.map((t) => t.toObject());
|
|
426
426
|
|
|
427
427
|
stateTransition = new DocumentsBatchTransition({
|
|
428
|
-
protocolVersion:
|
|
428
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
429
429
|
ownerId,
|
|
430
430
|
contractId: dataContract.getId(),
|
|
431
431
|
transitions: [documentTransition, documentTransition],
|
|
@@ -627,7 +627,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
|
627
627
|
const [firstTransition] = rawStateTransition.transitions;
|
|
628
628
|
|
|
629
629
|
const expectedId = firstTransition.$id;
|
|
630
|
-
firstTransition.$id =
|
|
630
|
+
firstTransition.$id = (await generateRandomIdentifierAsync()).toBuffer();
|
|
631
631
|
|
|
632
632
|
const result = await validateDocumentsBatchTransitionBasic(
|
|
633
633
|
protocolVersionValidator,
|
|
@@ -745,7 +745,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
|
745
745
|
});
|
|
746
746
|
|
|
747
747
|
stateTransition = new DocumentsBatchTransition({
|
|
748
|
-
protocolVersion:
|
|
748
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
749
749
|
ownerId,
|
|
750
750
|
contractId: dataContract.getId(),
|
|
751
751
|
transitions: documentTransitions.map((t) => t.toObject()),
|
|
@@ -848,7 +848,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
|
848
848
|
});
|
|
849
849
|
|
|
850
850
|
stateTransition = new DocumentsBatchTransition({
|
|
851
|
-
protocolVersion:
|
|
851
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
852
852
|
ownerId,
|
|
853
853
|
contractId: dataContract.getId(),
|
|
854
854
|
transitions: documentTransitions.map((t) => t.toObject()),
|
|
@@ -895,7 +895,7 @@ describe('validateDocumentsBatchTransitionBasicFactory', () => {
|
|
|
895
895
|
const duplicates = [duplicatedTransition, indexedTransition];
|
|
896
896
|
|
|
897
897
|
stateTransition = new DocumentsBatchTransition({
|
|
898
|
-
protocolVersion:
|
|
898
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
899
899
|
ownerId,
|
|
900
900
|
contractId: dataContract.getId(),
|
|
901
901
|
transitions: duplicates,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
|
|
2
1
|
const dpnsSystemIds = require('@dashevo/dpns-contract/lib/systemIds');
|
|
3
2
|
const getDpnsContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDpnsContractFixture');
|
|
4
3
|
const dpnsDocumentFixture = require('@dashevo/dpp/lib/test/fixtures/getDpnsDocumentFixture');
|
|
@@ -7,6 +6,7 @@ const getDocumentTransitionsFixture = require('@dashevo/dpp/lib/test/fixtures/ge
|
|
|
7
6
|
const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
|
|
8
7
|
|
|
9
8
|
const IdentifierJs = require('@dashevo/dpp/lib/identifier/Identifier');
|
|
9
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
10
10
|
|
|
11
11
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@ let DataTriggerExecutionResult;
|
|
|
19
19
|
let StateTransitionExecutionContext;
|
|
20
20
|
let getAllDataTriggers;
|
|
21
21
|
|
|
22
|
-
describe('executeDataTriggersFactory', () => {
|
|
22
|
+
describe.skip('executeDataTriggersFactory', () => {
|
|
23
23
|
let childDocumentJs;
|
|
24
24
|
let childDocument;
|
|
25
25
|
let contractMock;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
2
|
-
const getDocumentsFixture = require('
|
|
1
|
+
const getDataContractFixture = require('../../../../lib/test/fixtures/js/getDataContractFixture');
|
|
2
|
+
const getDocumentsFixture = require('../../../../lib/test/fixtures/js/getDocumentsFixture');
|
|
3
3
|
|
|
4
4
|
const { expectJsonSchemaError, expectValidationError } = require('../../../../lib/test/expect/expectError');
|
|
5
5
|
const { default: loadWasmDpp } = require('../../../../dist');
|
|
@@ -9,7 +9,7 @@ let ProtocolVersionValidator;
|
|
|
9
9
|
let DataContract;
|
|
10
10
|
let InvalidDocumentTypeError;
|
|
11
11
|
|
|
12
|
-
describe('validateDocumentFactory', () => {
|
|
12
|
+
describe.skip('validateDocumentFactory', () => {
|
|
13
13
|
let dataContract;
|
|
14
14
|
let dataContractJs;
|
|
15
15
|
let rawDocuments;
|
|
@@ -1,77 +1,43 @@
|
|
|
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
|
-
const instantAssetLockProofJS = getInstantAssetLockProofFixture();
|
|
27
|
+
const instantAssetLockProofJS = await getInstantAssetLockProofFixture();
|
|
56
28
|
instantAssetLockProof = new InstantAssetLockProof(instantAssetLockProofJS.toObject());
|
|
57
29
|
chainAssetLockProof = new ChainAssetLockProof(chainAssetLockProofJS.toObject());
|
|
58
30
|
|
|
59
|
-
|
|
60
|
-
identityObject.id = instantAssetLockProof.createIdentifier();
|
|
61
|
-
identity = new Identity(identityObject);
|
|
62
|
-
identity.setAssetLockProof(instantAssetLockProof);
|
|
31
|
+
identity = await getIdentityFixture(instantAssetLockProof.createIdentifier());
|
|
63
32
|
identity.setBalance(0);
|
|
64
33
|
});
|
|
65
34
|
|
|
66
35
|
describe('#create', () => {
|
|
67
36
|
it('should create Identity', () => {
|
|
68
|
-
const publicKeys = identity.getPublicKeys()
|
|
69
|
-
.map((identityPublicKey) => ({
|
|
70
|
-
...identityPublicKey.toObject(),
|
|
71
|
-
}));
|
|
37
|
+
const publicKeys = identity.getPublicKeys();
|
|
72
38
|
|
|
73
39
|
const result = dpp.identity.create(
|
|
74
|
-
instantAssetLockProof,
|
|
40
|
+
instantAssetLockProof.createIdentifier(),
|
|
75
41
|
publicKeys,
|
|
76
42
|
);
|
|
77
43
|
|
|
@@ -80,7 +46,8 @@ describe('IdentityFacade', () => {
|
|
|
80
46
|
});
|
|
81
47
|
});
|
|
82
48
|
|
|
83
|
-
|
|
49
|
+
// TODO(versioning): obsolete?
|
|
50
|
+
describe.skip('#createFromObject', () => {
|
|
84
51
|
it('should create Identity from plain object', () => {
|
|
85
52
|
const result = dpp.identity.createFromObject(identity.toObject());
|
|
86
53
|
|
|
@@ -105,7 +72,8 @@ describe('IdentityFacade', () => {
|
|
|
105
72
|
});
|
|
106
73
|
});
|
|
107
74
|
|
|
108
|
-
|
|
75
|
+
// TODO(versioning): restore
|
|
76
|
+
describe.skip('#validate', () => {
|
|
109
77
|
it('should validate Identity', async () => {
|
|
110
78
|
const result = await dpp.identity.validate(identity);
|
|
111
79
|
|
|
@@ -151,7 +119,10 @@ describe('IdentityFacade', () => {
|
|
|
151
119
|
|
|
152
120
|
describe('#createIdentityCreateTransition', () => {
|
|
153
121
|
it('should create IdentityCreateTransition from Identity model', () => {
|
|
154
|
-
const stateTransition = dpp.identity.createIdentityCreateTransition(
|
|
122
|
+
const stateTransition = dpp.identity.createIdentityCreateTransition(
|
|
123
|
+
identity,
|
|
124
|
+
instantAssetLockProof,
|
|
125
|
+
);
|
|
155
126
|
|
|
156
127
|
expect(stateTransition).to.be.instanceOf(IdentityCreateTransition);
|
|
157
128
|
const keysToExpect = stateTransition.getPublicKeys()
|
|
@@ -161,8 +132,13 @@ describe('IdentityFacade', () => {
|
|
|
161
132
|
return keyObject;
|
|
162
133
|
});
|
|
163
134
|
|
|
164
|
-
|
|
165
|
-
|
|
135
|
+
const actualKeys = identity.getPublicKeys().map((key) => {
|
|
136
|
+
const keyObject = key.toObject();
|
|
137
|
+
delete keyObject.disabledAt;
|
|
138
|
+
return keyObject;
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
expect(keysToExpect).to.deep.equal(actualKeys);
|
|
166
142
|
expect(stateTransition.getAssetLockProof().toObject()).to.deep.equal(
|
|
167
143
|
instantAssetLockProof.toObject(),
|
|
168
144
|
);
|
|
@@ -188,16 +164,11 @@ describe('IdentityFacade', () => {
|
|
|
188
164
|
|
|
189
165
|
describe('#createIdentityUpdateTransition', () => {
|
|
190
166
|
it('should create IdentityUpdateTransition from identity id and public keys', () => {
|
|
167
|
+
const key = new IdentityPublicKeyWithWitness(1);
|
|
168
|
+
key.setData(Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'));
|
|
169
|
+
|
|
191
170
|
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
|
-
})],
|
|
171
|
+
add: [key],
|
|
201
172
|
};
|
|
202
173
|
|
|
203
174
|
const stateTransition = dpp.identity
|
|
@@ -214,7 +185,7 @@ describe('IdentityFacade', () => {
|
|
|
214
185
|
);
|
|
215
186
|
expect(
|
|
216
187
|
stateTransition.getPublicKeysToAdd().map((pk) => pk.toObject()),
|
|
217
|
-
).to.deep.equal(publicKeys.add.map((
|
|
188
|
+
).to.deep.equal(publicKeys.add.map((k) => k.toObject()));
|
|
218
189
|
expect(stateTransition.getPublicKeyIdsToDisable()).to.deep.equal([]);
|
|
219
190
|
expect(stateTransition.getPublicKeysDisabledAt()).to.equal(undefined);
|
|
220
191
|
});
|
|
@@ -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();
|