@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
package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js
CHANGED
|
@@ -1,49 +1,25 @@
|
|
|
1
|
-
const getIdentityCreateTransitionFixture = require('
|
|
2
|
-
const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
|
|
1
|
+
const getIdentityCreateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
3
2
|
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
const {
|
|
4
|
+
IdentityPublicKeyWithWitness,
|
|
5
|
+
InstantAssetLockProof, Identifier,
|
|
6
|
+
StateTransitionTypes,
|
|
7
|
+
} = require('../../../../..');
|
|
7
8
|
|
|
8
9
|
describe('IdentityCreateTransition', () => {
|
|
9
10
|
let rawStateTransition;
|
|
10
11
|
let stateTransition;
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
type: KeyType.ECDSA_SECP256K1,
|
|
23
|
-
data: Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH', 'base64'),
|
|
24
|
-
purpose: KeyPurpose.AUTHENTICATION,
|
|
25
|
-
securityLevel: KeySecurityLevel.MASTER,
|
|
26
|
-
signature: Buffer.alloc(32).fill(1),
|
|
27
|
-
readOnly: false,
|
|
28
|
-
...params,
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
before(async () => {
|
|
32
|
-
({
|
|
33
|
-
IdentityCreateTransition,
|
|
34
|
-
IdentityPublicKeyWithWitness,
|
|
35
|
-
KeyType,
|
|
36
|
-
KeyPurpose,
|
|
37
|
-
KeySecurityLevel,
|
|
38
|
-
InstantAssetLockProof, Identifier,
|
|
39
|
-
} = await loadWasmDpp());
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
beforeEach(() => {
|
|
43
|
-
rawStateTransition = getIdentityCreateTransitionFixture().toObject();
|
|
44
|
-
stateTransition = new IdentityCreateTransition(
|
|
45
|
-
rawStateTransition,
|
|
46
|
-
);
|
|
13
|
+
const mockPublicKey = (id) => {
|
|
14
|
+
const key = new IdentityPublicKeyWithWitness(1);
|
|
15
|
+
key.setData(Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH', 'base64'));
|
|
16
|
+
key.setId(id);
|
|
17
|
+
return key;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
beforeEach(async () => {
|
|
21
|
+
stateTransition = await getIdentityCreateTransitionFixture();
|
|
22
|
+
rawStateTransition = stateTransition.toObject();
|
|
47
23
|
});
|
|
48
24
|
|
|
49
25
|
describe('#constructor', () => {
|
|
@@ -53,22 +29,14 @@ describe('IdentityCreateTransition', () => {
|
|
|
53
29
|
);
|
|
54
30
|
|
|
55
31
|
expect(stateTransition.publicKeys.map((key) => key.toObject())).to.deep.equal([
|
|
56
|
-
|
|
32
|
+
rawStateTransition.publicKeys[0],
|
|
57
33
|
]);
|
|
58
34
|
});
|
|
59
|
-
|
|
60
|
-
it('should create instance with chain asset lock proof', () => {
|
|
61
|
-
const stObject = stateTransition.toObject();
|
|
62
|
-
stObject.assetLockProof = getChainAssetLockProofFixture().toObject();
|
|
63
|
-
stateTransition = new IdentityCreateTransition(stObject);
|
|
64
|
-
expect(stateTransition.getAssetLockProof().toObject())
|
|
65
|
-
.to.deep.equal(stObject.assetLockProof);
|
|
66
|
-
});
|
|
67
35
|
});
|
|
68
36
|
|
|
69
37
|
describe('#getType', () => {
|
|
70
38
|
it('should return IDENTITY_CREATE type', () => {
|
|
71
|
-
expect(stateTransition.getType()).to.equal(
|
|
39
|
+
expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityCreate);
|
|
72
40
|
});
|
|
73
41
|
});
|
|
74
42
|
|
|
@@ -104,8 +72,8 @@ describe('IdentityCreateTransition', () => {
|
|
|
104
72
|
describe('#setPublicKeys', () => {
|
|
105
73
|
it('should set public keys', () => {
|
|
106
74
|
const publicKeys = [
|
|
107
|
-
|
|
108
|
-
|
|
75
|
+
mockPublicKey({ id: 0 }),
|
|
76
|
+
mockPublicKey({ id: 1 }),
|
|
109
77
|
];
|
|
110
78
|
|
|
111
79
|
stateTransition.setPublicKeys(publicKeys);
|
|
@@ -118,8 +86,7 @@ describe('IdentityCreateTransition', () => {
|
|
|
118
86
|
describe('#getPublicKeys', () => {
|
|
119
87
|
it('should return set public keys', () => {
|
|
120
88
|
expect(stateTransition.getPublicKeys().map((key) => key.toObject())).to.deep.equal(
|
|
121
|
-
rawStateTransition.publicKeys
|
|
122
|
-
.map((rawPublicKey) => new IdentityPublicKeyWithWitness(rawPublicKey).toObject()),
|
|
89
|
+
rawStateTransition.publicKeys,
|
|
123
90
|
);
|
|
124
91
|
});
|
|
125
92
|
});
|
|
@@ -127,8 +94,8 @@ describe('IdentityCreateTransition', () => {
|
|
|
127
94
|
describe('#addPublicKeys', () => {
|
|
128
95
|
it('should add more public keys', () => {
|
|
129
96
|
const publicKeys = [
|
|
130
|
-
|
|
131
|
-
|
|
97
|
+
mockPublicKey({ id: 0 }),
|
|
98
|
+
mockPublicKey({ id: 1 }),
|
|
132
99
|
];
|
|
133
100
|
|
|
134
101
|
stateTransition.setPublicKeys([]);
|
|
@@ -159,8 +126,8 @@ describe('IdentityCreateTransition', () => {
|
|
|
159
126
|
rawStateTransition = stateTransition.toObject();
|
|
160
127
|
|
|
161
128
|
expect(rawStateTransition).to.deep.equal({
|
|
162
|
-
|
|
163
|
-
type:
|
|
129
|
+
$version: '0',
|
|
130
|
+
type: StateTransitionTypes.IdentityCreate,
|
|
164
131
|
assetLockProof: rawStateTransition.assetLockProof,
|
|
165
132
|
publicKeys: rawStateTransition.publicKeys,
|
|
166
133
|
signature: undefined,
|
|
@@ -171,8 +138,8 @@ describe('IdentityCreateTransition', () => {
|
|
|
171
138
|
rawStateTransition = stateTransition.toObject({ skipSignature: true });
|
|
172
139
|
|
|
173
140
|
expect(rawStateTransition).to.deep.equal({
|
|
174
|
-
|
|
175
|
-
type:
|
|
141
|
+
$version: '0',
|
|
142
|
+
type: StateTransitionTypes.IdentityCreate,
|
|
176
143
|
assetLockProof: rawStateTransition.assetLockProof,
|
|
177
144
|
publicKeys: rawStateTransition.publicKeys,
|
|
178
145
|
});
|
|
@@ -184,8 +151,8 @@ describe('IdentityCreateTransition', () => {
|
|
|
184
151
|
const jsonStateTransition = stateTransition.toJSON();
|
|
185
152
|
|
|
186
153
|
expect(jsonStateTransition).to.deep.equal({
|
|
187
|
-
|
|
188
|
-
type:
|
|
154
|
+
$version: '0',
|
|
155
|
+
type: StateTransitionTypes.IdentityCreate,
|
|
189
156
|
assetLockProof: stateTransition.getAssetLockProof().toJSON(),
|
|
190
157
|
publicKeys: stateTransition.getPublicKeys().map((k) => k.toJSON()),
|
|
191
158
|
signature: undefined,
|
|
@@ -202,7 +169,7 @@ describe('IdentityCreateTransition', () => {
|
|
|
202
169
|
|
|
203
170
|
expect(identityId).to.be.an.instanceOf(Identifier);
|
|
204
171
|
expect(identityId.toBuffer()).to.be.deep.equal(
|
|
205
|
-
|
|
172
|
+
stateTransition.getAssetLockProof().createIdentifier(),
|
|
206
173
|
);
|
|
207
174
|
});
|
|
208
175
|
});
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
2
|
-
|
|
3
1
|
const { convertSatoshiToCredits } = require('@dashevo/dpp/lib/identity/creditsConverter');
|
|
4
2
|
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
3
|
+
const getIdentityCreateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
4
|
+
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
8
5
|
|
|
9
|
-
const { default: loadWasmDpp } = require('
|
|
6
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
7
|
+
const { getLatestProtocolVersion } = require('../../../../..');
|
|
10
8
|
|
|
11
|
-
describe('applyIdentityCreateTransitionFactory', () => {
|
|
9
|
+
describe.skip('applyIdentityCreateTransitionFactory', () => {
|
|
12
10
|
let stateTransition;
|
|
13
11
|
let applyIdentityCreateTransition;
|
|
14
12
|
let stateRepositoryMock;
|
|
@@ -16,7 +14,6 @@ describe('applyIdentityCreateTransitionFactory', () => {
|
|
|
16
14
|
let executionContext;
|
|
17
15
|
|
|
18
16
|
let StateTransitionExecutionContext;
|
|
19
|
-
let IdentityCreateTransition;
|
|
20
17
|
let Identity;
|
|
21
18
|
|
|
22
19
|
let applyIdentityCreateTransitionDPP;
|
|
@@ -24,21 +21,18 @@ describe('applyIdentityCreateTransitionFactory', () => {
|
|
|
24
21
|
before(async () => {
|
|
25
22
|
({
|
|
26
23
|
StateTransitionExecutionContext,
|
|
27
|
-
IdentityCreateTransition,
|
|
28
24
|
applyIdentityCreateTransition: applyIdentityCreateTransitionDPP,
|
|
29
25
|
Identity,
|
|
30
26
|
} = await loadWasmDpp());
|
|
31
27
|
});
|
|
32
28
|
|
|
33
|
-
beforeEach(function beforeEach() {
|
|
29
|
+
beforeEach(async function beforeEach() {
|
|
34
30
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
35
31
|
stateRepositoryMock.createIdentity.resolves();
|
|
36
32
|
stateRepositoryMock.addToSystemCredits.resolves();
|
|
37
33
|
stateRepositoryMock.markAssetLockTransactionOutPointAsUsed.resolves();
|
|
38
34
|
|
|
39
|
-
stateTransition =
|
|
40
|
-
getIdentityCreateTransitionFixture().toObject(),
|
|
41
|
-
);
|
|
35
|
+
stateTransition = await getIdentityCreateTransitionFixture();
|
|
42
36
|
|
|
43
37
|
executionContext = new StateTransitionExecutionContext();
|
|
44
38
|
|
|
@@ -51,7 +45,7 @@ describe('applyIdentityCreateTransitionFactory', () => {
|
|
|
51
45
|
);
|
|
52
46
|
});
|
|
53
47
|
|
|
54
|
-
it('should store identity created from state transition', async function () {
|
|
48
|
+
it('should store identity created from state transition', async function beforeEach() {
|
|
55
49
|
await applyIdentityCreateTransition(stateTransition);
|
|
56
50
|
|
|
57
51
|
const balance = convertSatoshiToCredits(
|
|
@@ -59,7 +53,7 @@ describe('applyIdentityCreateTransitionFactory', () => {
|
|
|
59
53
|
);
|
|
60
54
|
|
|
61
55
|
const identity = new Identity({
|
|
62
|
-
protocolVersion:
|
|
56
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
63
57
|
id: stateTransition.getIdentityId(),
|
|
64
58
|
publicKeys: stateTransition.getPublicKeys()
|
|
65
59
|
.map((key) => key.toObject({ skipSignature: true })),
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
const getIdentityCreateTransitionFixture = require('
|
|
1
|
+
const getIdentityCreateTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
|
|
2
2
|
|
|
3
|
-
const createStateRepositoryMock = require('
|
|
3
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
4
4
|
|
|
5
5
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
6
6
|
const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
|
|
7
7
|
|
|
8
|
-
describe('validateIdentityCreateTransitionStateFactory', () => {
|
|
8
|
+
describe.skip('validateIdentityCreateTransitionStateFactory', () => {
|
|
9
9
|
let validateIdentityCreateTransitionState;
|
|
10
10
|
let stateTransition;
|
|
11
11
|
let stateRepositoryMock;
|
|
12
12
|
let executionContext;
|
|
13
13
|
|
|
14
|
-
let IdentityCreateTransition;
|
|
15
14
|
let IdentityPublicKey;
|
|
16
15
|
let IdentityAlreadyExistsError;
|
|
17
16
|
let IdentityCreateTransitionStateValidator;
|
|
@@ -19,7 +18,6 @@ describe('validateIdentityCreateTransitionStateFactory', () => {
|
|
|
19
18
|
|
|
20
19
|
before(async () => {
|
|
21
20
|
({
|
|
22
|
-
IdentityCreateTransition,
|
|
23
21
|
IdentityAlreadyExistsError,
|
|
24
22
|
IdentityPublicKey,
|
|
25
23
|
IdentityCreateTransitionStateValidator,
|
|
@@ -27,7 +25,7 @@ describe('validateIdentityCreateTransitionStateFactory', () => {
|
|
|
27
25
|
} = await loadWasmDpp());
|
|
28
26
|
});
|
|
29
27
|
|
|
30
|
-
beforeEach(async function () {
|
|
28
|
+
beforeEach(async function beforeEach() {
|
|
31
29
|
executionContext = new StateTransitionExecutionContext();
|
|
32
30
|
const privateKey = Buffer.from('af432c476f65211f45f48f1d42c9c0b497e56696aa1736b40544ef1a496af837', 'hex');
|
|
33
31
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
@@ -35,9 +33,7 @@ describe('validateIdentityCreateTransitionStateFactory', () => {
|
|
|
35
33
|
const validator = new IdentityCreateTransitionStateValidator(stateRepositoryMock);
|
|
36
34
|
validateIdentityCreateTransitionState = (st) => validator.validate(st, executionContext);
|
|
37
35
|
|
|
38
|
-
stateTransition =
|
|
39
|
-
getIdentityCreateTransitionFixture().toObject(),
|
|
40
|
-
);
|
|
36
|
+
stateTransition = await getIdentityCreateTransitionFixture();
|
|
41
37
|
|
|
42
38
|
await stateTransition.signByPrivateKey(privateKey, IdentityPublicKey.TYPES.ECDSA_SECP256K1);
|
|
43
39
|
|
package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js
CHANGED
|
@@ -1,30 +1,15 @@
|
|
|
1
|
-
const getIdentityTopUpTransitionFixture = require('
|
|
2
|
-
const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
|
|
1
|
+
const getIdentityTopUpTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
|
|
3
2
|
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
3
|
+
const { InstantAssetLockProof, Identifier } = require('../../../../..');
|
|
4
|
+
const { StateTransitionTypes } = require('../../../../..');
|
|
7
5
|
|
|
8
6
|
describe('IdentityTopUpTransition', () => {
|
|
9
7
|
let rawStateTransition;
|
|
10
8
|
let stateTransition;
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
before(async () => {
|
|
17
|
-
({
|
|
18
|
-
IdentityTopUpTransition, InstantAssetLockProof, Identifier,
|
|
19
|
-
} = await loadWasmDpp());
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
beforeEach(() => {
|
|
23
|
-
rawStateTransition = getIdentityTopUpTransitionFixture().toObject();
|
|
24
|
-
|
|
25
|
-
stateTransition = new IdentityTopUpTransition(
|
|
26
|
-
rawStateTransition,
|
|
27
|
-
);
|
|
10
|
+
beforeEach(async () => {
|
|
11
|
+
stateTransition = await getIdentityTopUpTransitionFixture();
|
|
12
|
+
rawStateTransition = stateTransition.toObject();
|
|
28
13
|
});
|
|
29
14
|
|
|
30
15
|
describe('#constructor', () => {
|
|
@@ -36,18 +21,11 @@ describe('IdentityTopUpTransition', () => {
|
|
|
36
21
|
rawStateTransition.identityId,
|
|
37
22
|
);
|
|
38
23
|
});
|
|
39
|
-
|
|
40
|
-
it('should create instance with chain asset lock proof', () => {
|
|
41
|
-
rawStateTransition.assetLockProof = getChainAssetLockProofFixture().toObject();
|
|
42
|
-
stateTransition = new IdentityTopUpTransition(rawStateTransition);
|
|
43
|
-
expect(stateTransition.getAssetLockProof().toObject())
|
|
44
|
-
.to.deep.equal(rawStateTransition.assetLockProof);
|
|
45
|
-
});
|
|
46
24
|
});
|
|
47
25
|
|
|
48
26
|
describe('#getType', () => {
|
|
49
27
|
it('should return IDENTITY_TOP_UP type', () => {
|
|
50
|
-
expect(stateTransition.getType()).to.equal(
|
|
28
|
+
expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityTopUp);
|
|
51
29
|
});
|
|
52
30
|
});
|
|
53
31
|
|
|
@@ -91,8 +69,8 @@ describe('IdentityTopUpTransition', () => {
|
|
|
91
69
|
rawStateTransition = stateTransition.toObject();
|
|
92
70
|
|
|
93
71
|
expect(rawStateTransition).to.deep.equal({
|
|
94
|
-
|
|
95
|
-
type:
|
|
72
|
+
$version: '0',
|
|
73
|
+
type: StateTransitionTypes.IdentityTopUp,
|
|
96
74
|
assetLockProof: rawStateTransition.assetLockProof,
|
|
97
75
|
identityId: rawStateTransition.identityId,
|
|
98
76
|
signature: undefined,
|
|
@@ -103,8 +81,8 @@ describe('IdentityTopUpTransition', () => {
|
|
|
103
81
|
rawStateTransition = stateTransition.toObject({ skipSignature: true });
|
|
104
82
|
|
|
105
83
|
expect(rawStateTransition).to.deep.equal({
|
|
106
|
-
|
|
107
|
-
type:
|
|
84
|
+
$version: '0',
|
|
85
|
+
type: StateTransitionTypes.IdentityTopUp,
|
|
108
86
|
assetLockProof: rawStateTransition.assetLockProof,
|
|
109
87
|
identityId: rawStateTransition.identityId,
|
|
110
88
|
});
|
|
@@ -116,8 +94,8 @@ describe('IdentityTopUpTransition', () => {
|
|
|
116
94
|
const jsonStateTransition = stateTransition.toJSON();
|
|
117
95
|
|
|
118
96
|
expect(jsonStateTransition).to.deep.equal({
|
|
119
|
-
|
|
120
|
-
type:
|
|
97
|
+
$version: '0',
|
|
98
|
+
type: StateTransitionTypes.IdentityTopUp,
|
|
121
99
|
assetLockProof: stateTransition.getAssetLockProof().toJSON(),
|
|
122
100
|
identityId: new Identifier(rawStateTransition.identityId).toString(),
|
|
123
101
|
signature: undefined,
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
const getIdentityTopUpTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityTopUpTransitionFixture');
|
|
2
|
-
|
|
3
1
|
const { convertSatoshiToCredits } = require('@dashevo/dpp/lib/identity/creditsConverter');
|
|
4
2
|
|
|
5
|
-
const
|
|
3
|
+
const getIdentityTopUpTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
|
|
4
|
+
|
|
5
|
+
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
6
6
|
|
|
7
|
-
const { default: loadWasmDpp } = require('
|
|
7
|
+
const { default: loadWasmDpp } = require('../../../../..');
|
|
8
8
|
|
|
9
|
-
describe('applyIdentityTopUpTransitionFactory', () => {
|
|
9
|
+
describe.skip('applyIdentityTopUpTransitionFactory', () => {
|
|
10
10
|
let stateTransition;
|
|
11
11
|
let applyIdentityTopUpTransition;
|
|
12
12
|
let stateRepositoryMock;
|
|
13
13
|
let executionContext;
|
|
14
14
|
|
|
15
15
|
let StateTransitionExecutionContext;
|
|
16
|
-
let IdentityTopUpTransition;
|
|
17
16
|
|
|
18
17
|
let applyIdentityTopUpTransitionDPP;
|
|
19
18
|
|
|
20
19
|
before(async () => {
|
|
21
20
|
({
|
|
22
21
|
StateTransitionExecutionContext,
|
|
23
|
-
IdentityTopUpTransition,
|
|
24
22
|
applyIdentityTopUpTransition: applyIdentityTopUpTransitionDPP,
|
|
25
23
|
} = await loadWasmDpp());
|
|
26
24
|
});
|
|
@@ -39,9 +37,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
|
|
|
39
37
|
height: 42,
|
|
40
38
|
});
|
|
41
39
|
|
|
42
|
-
stateTransition =
|
|
43
|
-
getIdentityTopUpTransitionFixture().toObject(),
|
|
44
|
-
);
|
|
40
|
+
stateTransition = await getIdentityTopUpTransitionFixture();
|
|
45
41
|
|
|
46
42
|
executionContext = new StateTransitionExecutionContext();
|
|
47
43
|
|
|
@@ -52,7 +48,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
|
|
|
52
48
|
);
|
|
53
49
|
});
|
|
54
50
|
|
|
55
|
-
it('should add topup amount to identity balance', async function () {
|
|
51
|
+
it('should add topup amount to identity balance', async function shouldAdd() {
|
|
56
52
|
const balanceToTopUp = convertSatoshiToCredits(
|
|
57
53
|
stateTransition.getAssetLockProof().getOutput().satoshis,
|
|
58
54
|
);
|
|
@@ -81,7 +77,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
|
|
|
81
77
|
);
|
|
82
78
|
});
|
|
83
79
|
|
|
84
|
-
it('should ignore balance debt for system credits', async function () {
|
|
80
|
+
it('should ignore balance debt for system credits', async function shouldIgnore() {
|
|
85
81
|
stateRepositoryMock.fetchIdentityBalanceWithDebt.resolves(-5);
|
|
86
82
|
|
|
87
83
|
const balanceToTopUp = convertSatoshiToCredits(
|
|
@@ -112,7 +108,7 @@ describe('applyIdentityTopUpTransitionFactory', () => {
|
|
|
112
108
|
);
|
|
113
109
|
});
|
|
114
110
|
|
|
115
|
-
it('should add topup amount to identity balance on dry run', async function () {
|
|
111
|
+
it('should add topup amount to identity balance on dry run', async function shouldAddTopup() {
|
|
116
112
|
const { match } = this.sinonSandbox;
|
|
117
113
|
|
|
118
114
|
const balanceToTopUp = convertSatoshiToCredits(
|
|
@@ -1,32 +1,28 @@
|
|
|
1
|
-
const getIdentityTopUpTransitionFixture = require('
|
|
1
|
+
const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
|
|
2
2
|
|
|
3
|
-
const createStateRepositoryMock = require('
|
|
3
|
+
const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
4
4
|
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
5
5
|
|
|
6
|
-
describe('validateIdentityTopUpTransitionStateFactory', () => {
|
|
6
|
+
describe.skip('validateIdentityTopUpTransitionStateFactory', () => {
|
|
7
7
|
let validateIdentityTopUpTransitionState;
|
|
8
8
|
let stateTransition;
|
|
9
9
|
let stateRepositoryMock;
|
|
10
10
|
let executionContext;
|
|
11
11
|
|
|
12
|
-
let IdentityTopUpTransition;
|
|
13
12
|
let IdentityTopUpTransitionStateValidator;
|
|
14
13
|
let StateTransitionExecutionContext;
|
|
15
14
|
|
|
16
15
|
before(async () => {
|
|
17
16
|
({
|
|
18
|
-
IdentityTopUpTransition,
|
|
19
17
|
IdentityTopUpTransitionStateValidator,
|
|
20
18
|
StateTransitionExecutionContext,
|
|
21
19
|
} = await loadWasmDpp());
|
|
22
20
|
});
|
|
23
21
|
|
|
24
|
-
beforeEach(function () {
|
|
22
|
+
beforeEach(async function beforeEach() {
|
|
25
23
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
26
24
|
|
|
27
|
-
stateTransition =
|
|
28
|
-
getIdentityTopUpTransitionFixture().toObject(),
|
|
29
|
-
);
|
|
25
|
+
stateTransition = await getIdentityTopUpTransitionFixture();
|
|
30
26
|
|
|
31
27
|
const validator = new IdentityTopUpTransitionStateValidator(stateRepositoryMock);
|
|
32
28
|
|
package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js
CHANGED
|
@@ -1,30 +1,13 @@
|
|
|
1
|
-
const stateTransitionTypes = require(
|
|
2
|
-
'@dashevo/dpp/lib/stateTransition/stateTransitionTypes',
|
|
3
|
-
);
|
|
4
|
-
|
|
5
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
6
|
-
|
|
7
1
|
const getIdentityUpdateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
|
|
8
2
|
|
|
9
|
-
const {
|
|
3
|
+
const { IdentityPublicKey, Identifier, IdentityPublicKeyWithWitness } = require('../../../../..');
|
|
4
|
+
const { StateTransitionTypes } = require('../../../../..');
|
|
10
5
|
const generateRandomIdentifierAsync = require('../../../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
11
6
|
|
|
12
7
|
describe('IdentityUpdateTransition', () => {
|
|
13
8
|
let rawStateTransition;
|
|
14
9
|
let stateTransition;
|
|
15
10
|
|
|
16
|
-
let IdentityPublicKey;
|
|
17
|
-
let Identifier;
|
|
18
|
-
let IdentityPublicKeyWithWitness;
|
|
19
|
-
|
|
20
|
-
before(async () => {
|
|
21
|
-
({
|
|
22
|
-
IdentityPublicKey,
|
|
23
|
-
Identifier,
|
|
24
|
-
IdentityPublicKeyWithWitness,
|
|
25
|
-
} = await loadWasmDpp());
|
|
26
|
-
});
|
|
27
|
-
|
|
28
11
|
beforeEach(async () => {
|
|
29
12
|
stateTransition = await getIdentityUpdateTransitionFixture();
|
|
30
13
|
rawStateTransition = stateTransition.toObject();
|
|
@@ -32,7 +15,7 @@ describe('IdentityUpdateTransition', () => {
|
|
|
32
15
|
|
|
33
16
|
describe('#getType', () => {
|
|
34
17
|
it('should return IDENTITY_UPDATE type', () => {
|
|
35
|
-
expect(stateTransition.getType()).to.equal(
|
|
18
|
+
expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityUpdate);
|
|
36
19
|
});
|
|
37
20
|
});
|
|
38
21
|
|
|
@@ -80,28 +63,23 @@ describe('IdentityUpdateTransition', () => {
|
|
|
80
63
|
it('should return public keys to add', () => {
|
|
81
64
|
expect(stateTransition.getPublicKeysToAdd().map((key) => key.toObject()))
|
|
82
65
|
.to.deep.equal(
|
|
83
|
-
rawStateTransition.addPublicKeys
|
|
84
|
-
.map((rawPublicKey) => new IdentityPublicKeyWithWitness(rawPublicKey).toObject()),
|
|
66
|
+
rawStateTransition.addPublicKeys,
|
|
85
67
|
);
|
|
86
68
|
});
|
|
87
69
|
});
|
|
88
70
|
|
|
89
71
|
describe('#setPublicKeysToAdd', () => {
|
|
90
72
|
it('should set public keys to add', () => {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
readOnly: true,
|
|
97
|
-
signature: Buffer.alloc(0),
|
|
98
|
-
data: Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'),
|
|
99
|
-
})];
|
|
73
|
+
const key = new IdentityPublicKeyWithWitness(1);
|
|
74
|
+
key.setType(IdentityPublicKey.TYPES.BLS12_381);
|
|
75
|
+
key.setData(Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'));
|
|
76
|
+
|
|
77
|
+
const publicKeys = [key];
|
|
100
78
|
|
|
101
79
|
stateTransition.setPublicKeysToAdd(publicKeys);
|
|
102
80
|
|
|
103
|
-
expect(stateTransition.addPublicKeys.map((
|
|
104
|
-
.to.have.deep.members(publicKeys.map((
|
|
81
|
+
expect(stateTransition.addPublicKeys.map((k) => k.toObject()))
|
|
82
|
+
.to.have.deep.members(publicKeys.map((k) => k.toObject()));
|
|
105
83
|
});
|
|
106
84
|
});
|
|
107
85
|
|
|
@@ -124,7 +102,7 @@ describe('IdentityUpdateTransition', () => {
|
|
|
124
102
|
describe('#getPublicKeysDisabledAt', () => {
|
|
125
103
|
it('should return time to disable public keys', () => {
|
|
126
104
|
expect(stateTransition.getPublicKeysDisabledAt())
|
|
127
|
-
.to.deep.equal(
|
|
105
|
+
.to.deep.equal(rawStateTransition.publicKeysDisabledAt);
|
|
128
106
|
});
|
|
129
107
|
});
|
|
130
108
|
|
|
@@ -143,15 +121,15 @@ describe('IdentityUpdateTransition', () => {
|
|
|
143
121
|
rawStateTransition = stateTransition.toObject();
|
|
144
122
|
|
|
145
123
|
expect(rawStateTransition).to.deep.equal({
|
|
146
|
-
|
|
147
|
-
type:
|
|
124
|
+
$version: '0',
|
|
125
|
+
type: StateTransitionTypes.IdentityUpdate,
|
|
148
126
|
signature: undefined,
|
|
149
127
|
identityId: rawStateTransition.identityId,
|
|
150
128
|
revision: rawStateTransition.revision,
|
|
151
129
|
publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
|
|
152
130
|
addPublicKeys: rawStateTransition.addPublicKeys,
|
|
153
131
|
disablePublicKeys: rawStateTransition.disablePublicKeys,
|
|
154
|
-
signaturePublicKeyId:
|
|
132
|
+
signaturePublicKeyId: 0,
|
|
155
133
|
});
|
|
156
134
|
});
|
|
157
135
|
|
|
@@ -159,8 +137,8 @@ describe('IdentityUpdateTransition', () => {
|
|
|
159
137
|
rawStateTransition = stateTransition.toObject({ skipSignature: true });
|
|
160
138
|
|
|
161
139
|
expect(rawStateTransition).to.deep.equal({
|
|
162
|
-
|
|
163
|
-
type:
|
|
140
|
+
$version: '0',
|
|
141
|
+
type: StateTransitionTypes.IdentityUpdate,
|
|
164
142
|
identityId: rawStateTransition.identityId,
|
|
165
143
|
revision: rawStateTransition.revision,
|
|
166
144
|
publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
|
|
@@ -177,12 +155,12 @@ describe('IdentityUpdateTransition', () => {
|
|
|
177
155
|
rawStateTransition = stateTransition.toObject();
|
|
178
156
|
|
|
179
157
|
expect(rawStateTransition).to.deep.equal({
|
|
180
|
-
|
|
181
|
-
type:
|
|
158
|
+
$version: '0',
|
|
159
|
+
type: StateTransitionTypes.IdentityUpdate,
|
|
182
160
|
signature: undefined,
|
|
183
161
|
identityId: rawStateTransition.identityId,
|
|
184
162
|
revision: rawStateTransition.revision,
|
|
185
|
-
signaturePublicKeyId:
|
|
163
|
+
signaturePublicKeyId: 0,
|
|
186
164
|
});
|
|
187
165
|
});
|
|
188
166
|
});
|
|
@@ -192,15 +170,15 @@ describe('IdentityUpdateTransition', () => {
|
|
|
192
170
|
const jsonStateTransition = stateTransition.toJSON();
|
|
193
171
|
|
|
194
172
|
expect(jsonStateTransition).to.deep.equal({
|
|
195
|
-
|
|
196
|
-
type:
|
|
173
|
+
$version: '0',
|
|
174
|
+
type: StateTransitionTypes.IdentityUpdate,
|
|
197
175
|
signature: undefined,
|
|
198
176
|
identityId: stateTransition.getIdentityId().toString(),
|
|
199
177
|
revision: rawStateTransition.revision,
|
|
200
|
-
publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
|
|
178
|
+
publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt.getTime(),
|
|
201
179
|
addPublicKeys: stateTransition.getPublicKeysToAdd().map((k) => k.toJSON()),
|
|
202
180
|
disablePublicKeys: rawStateTransition.disablePublicKeys,
|
|
203
|
-
signaturePublicKeyId:
|
|
181
|
+
signaturePublicKeyId: 0,
|
|
204
182
|
});
|
|
205
183
|
});
|
|
206
184
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const createStateRepositoryMock = require('
|
|
1
|
+
const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
|
|
2
2
|
const getIdentityUpdateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
|
|
3
3
|
|
|
4
4
|
const { default: loadWasmDpp } = require('../../../../../dist');
|
|
5
5
|
|
|
6
|
-
describe('applyIdentityUpdateTransition', () => {
|
|
6
|
+
describe.skip('applyIdentityUpdateTransition', () => {
|
|
7
7
|
let applyIdentityUpdateTransition;
|
|
8
8
|
let stateRepositoryMock;
|
|
9
9
|
let stateTransition;
|
|
@@ -38,7 +38,7 @@ describe('applyIdentityUpdateTransition', () => {
|
|
|
38
38
|
);
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
-
it('should add and disable public keys', async function () {
|
|
41
|
+
it('should add and disable public keys', async function shouldAdd() {
|
|
42
42
|
await applyIdentityUpdateTransition(stateTransition);
|
|
43
43
|
|
|
44
44
|
const { match } = this.sinonSandbox;
|
|
@@ -66,7 +66,7 @@ describe('applyIdentityUpdateTransition', () => {
|
|
|
66
66
|
);
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
it('should add and disable public keys on dry run', async function () {
|
|
69
|
+
it('should add and disable public keys on dry run', async function shouldDisable() {
|
|
70
70
|
const { match } = this.sinonSandbox;
|
|
71
71
|
|
|
72
72
|
executionContext.enableDryRun();
|