@dashevo/wasm-dpp 0.25.0-dev.16 → 0.25.0-dev.18
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 +22 -2
- package/dist/errors/patchConsensusErrors.js +94 -115
- package/dist/wasm/wasm_dpp.d.ts +2120 -4338
- package/dist/wasm/wasm_dpp.js +17747 -2768
- 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 +2 -4
- package/lib/test/fixtures/getDocumentsFixture.js +4 -4
- package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +13 -19
- package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +7 -12
- 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/wasm/wasm_dpp.d.ts +2120 -4338
- package/package.json +4 -4
- package/src/dash_platform_protocol.rs +172 -195
- package/src/data_contract/data_contract.rs +255 -203
- package/src/data_contract/data_contract_facade.rs +24 -46
- 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 +82 -87
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +74 -80
- package/src/data_contract_factory/data_contract_factory.rs +29 -82
- package/src/document/document_facade.rs +74 -81
- 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 +127 -123
- package/src/document/generate_document_id.rs +2 -2
- package/src/document/mod.rs +162 -148
- 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 +230 -217
- package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +2 -10
- package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +2 -11
- package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +1 -10
- package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +1 -10
- package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +10 -8
- package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +1 -10
- package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +1 -10
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -10
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -10
- package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +1 -10
- package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +1 -10
- package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +1 -10
- package/src/errors/consensus/basic/document/invalid_document_type_error.rs +1 -10
- package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +1 -10
- package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +1 -10
- package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +1 -10
- package/src/errors/consensus/basic/document/missing_document_type_error.rs +1 -10
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -10
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -10
- package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +1 -10
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +1 -10
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +1 -10
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +1 -10
- package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +1 -10
- package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +1 -10
- package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +1 -10
- package/src/errors/consensus/basic/identity/missing_public_key_error.rs +1 -10
- package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +1 -10
- package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -10
- package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +1 -10
- package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +1 -10
- package/src/errors/consensus/basic/json_schema_compilation_error.rs +1 -10
- 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 -10
- 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 -10
- package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +1 -10
- package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +1 -10
- package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +1 -10
- package/src/errors/consensus/basic/unsupported_version_error.rs +44 -0
- package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +1 -10
- package/src/errors/consensus/consensus_error.rs +30 -21
- package/src/errors/consensus/deserialize.rs +2 -2
- package/src/errors/consensus/fee/balance_is_not_enough_error.rs +5 -3
- package/src/errors/consensus/signature/basic_bls_error.rs +1 -10
- package/src/errors/consensus/signature/basic_ecdsa_error.rs +1 -10
- package/src/errors/consensus/signature/identity_not_found_error.rs +4 -3
- package/src/errors/consensus/signature/signature_should_not_be_present_error.rs +1 -10
- package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +3 -3
- package/src/errors/consensus/state/data_contract/data_contract_config_update_error.rs +1 -12
- package/src/errors/consensus/state/data_contract/data_contract_is_readonly_error.rs +1 -10
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +2 -2
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +2 -2
- package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +2 -2
- package/src/errors/consensus/state/data_contract/mod.rs +3 -1
- package/src/errors/consensus/state/document/document_already_present_error.rs +1 -10
- package/src/errors/consensus/state/document/document_not_found_error.rs +1 -10
- package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +1 -10
- package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +1 -10
- package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +1 -10
- package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +1 -10
- package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +1 -10
- package/src/errors/consensus/state/document/invalid_document_revision_error.rs +9 -13
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +1 -10
- package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +1 -10
- package/src/errors/consensus/state/identity/identity_already_exists_error.rs +1 -10
- package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +1 -10
- package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +1 -10
- package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +1 -10
- package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -10
- package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +1 -10
- package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +1 -10
- package/src/errors/consensus/value_error.rs +1 -10
- package/src/errors/from.rs +12 -8
- package/src/errors/mod.rs +7 -7
- package/src/identity/factory_utils.rs +10 -10
- package/src/identity/identity.rs +275 -0
- package/src/identity/identity_facade.rs +69 -70
- package/src/identity/identity_factory.rs +57 -55
- package/src/identity/identity_public_key/mod.rs +86 -62
- package/src/identity/mod.rs +25 -256
- 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_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 +66 -52
- 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 +9 -11
- package/src/identity/state_transition/identity_credit_transfer_transition/mod.rs +3 -3
- package/src/identity/state_transition/identity_credit_transfer_transition/to_object.rs +10 -13
- package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +72 -39
- package/src/identity/state_transition/identity_public_key_transitions.rs +81 -66
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +64 -51
- 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_transition.rs +95 -92
- package/src/identity/state_transition/identity_update_transition/mod.rs +4 -4
- package/src/identity/state_transition/identity_update_transition/to_object.rs +14 -18
- package/src/identity/state_transition/mod.rs +2 -2
- package/src/lib.rs +9 -9
- package/src/metadata.rs +3 -3
- package/src/protocol_version.rs +2 -2
- package/src/state_transition/errors/invalid_state_transition_error.rs +9 -9
- 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 +1 -2
- package/src/state_transition/state_transition_factory.rs +139 -159
- package/src/state_transition/validation/state_transition_fee_validator.rs +1 -1
- package/src/state_transition/validation/validate_state_transition_identity_signature.rs +3 -4
- package/src/state_transition/validation/validate_state_transition_key_signature.rs +1 -1
- package/src/utils.rs +4 -2
- package/src/validation/validation_result.rs +1 -1
- package/test/integration/dataContract/DataContractFacade.spec.js +11 -15
- package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +1 -1
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +1 -1
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +1 -1
- package/test/integration/document/Document.spec.js +3 -3
- package/test/integration/document/DocumentFacade.spec.js +34 -33
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +1 -1
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +1 -1
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
- package/test/integration/document/validation/validateDocumentFactory.spec.js +1 -1
- package/test/integration/identity/IdentityFacade.spec.js +29 -58
- package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +2 -2
- package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +2 -2
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +2 -2
- package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +2 -2
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +4 -3
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +1 -1
- package/test/integration/identity/validation/validateIdentityFactory.spec.js +2 -2
- package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +1 -1
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +39 -48
- package/test/integration/util/generateTemporaryEcdsaPrivateKey.spec.js +1 -1
- package/test/unit/DashPlatformProtocol.spec.js +4 -18
- package/test/unit/dataContract/DataContract.spec.js +88 -123
- package/test/unit/dataContract/DataContractFactory.spec.js +1 -1
- package/test/unit/dataContract/createDataContract.spec.js +1 -1
- package/test/unit/dataContract/generateDataContractId.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +14 -14
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +7 -8
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +1 -1
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +1 -1
- package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +1 -1
- package/test/unit/document/Document.spec.js +18 -10
- package/test/unit/document/DocumentFactory.spec.js +10 -23
- package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +4 -4
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +1 -1
- 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 +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +1 -1
- package/test/unit/identity/Identity.spec.js +36 -74
- package/test/unit/identity/IdentityFactory.spec.js +55 -68
- package/test/unit/identity/IdentityPublicKey.spec.js +33 -47
- package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +23 -55
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +2 -2
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +2 -2
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +7 -28
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +4 -4
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +19 -36
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +3 -3
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +1 -1
- package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +14 -23
- package/test/unit/stateTransition/StateTransitionExecutionContext.spec.js +1 -1
- package/test/unit/stateTransition/StateTransitionFactory.spec.js +13 -18
- package/test/unit/stateTransition/createStateTransitionFactory.spec.js +1 -1
- package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +1 -1
- package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +1 -1
- package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +1 -1
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +2 -2
- 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/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +0 -25
|
@@ -1,47 +1,26 @@
|
|
|
1
|
-
const varint = require('varint');
|
|
2
|
-
|
|
3
1
|
const { hash: hashFunction } = require('@dashevo/dpp/lib/util/hash');
|
|
4
2
|
const { expect } = require('chai');
|
|
5
3
|
const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
6
|
-
const {
|
|
7
|
-
|
|
4
|
+
const {
|
|
5
|
+
Identity, Metadata, IdentityPublicKey, KeyPurpose, KeyType, KeySecurityLevel,
|
|
6
|
+
Identifier,
|
|
7
|
+
} = require('../../..');
|
|
8
8
|
|
|
9
9
|
describe('Identity', () => {
|
|
10
10
|
let rawIdentity;
|
|
11
11
|
let identity;
|
|
12
12
|
let metadataFixture;
|
|
13
|
-
let Identity;
|
|
14
|
-
let Metadata;
|
|
15
|
-
let IdentityPublicKey;
|
|
16
|
-
let KeyPurpose;
|
|
17
|
-
let KeyType;
|
|
18
|
-
let KeySecurityLevel;
|
|
19
|
-
|
|
20
|
-
before(async () => {
|
|
21
|
-
({
|
|
22
|
-
Identity, Metadata, IdentityPublicKey, KeyPurpose, KeyType, KeySecurityLevel,
|
|
23
|
-
} = await loadWasmDpp());
|
|
24
|
-
});
|
|
25
13
|
|
|
26
14
|
beforeEach(async () => {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
securityLevel: KeySecurityLevel.MASTER,
|
|
37
|
-
readOnly: false,
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
balance: 0,
|
|
41
|
-
revision: 0,
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
identity = new Identity(rawIdentity);
|
|
15
|
+
identity = new Identity(1);
|
|
16
|
+
identity.setId(await generateRandomIdentifierAsync());
|
|
17
|
+
|
|
18
|
+
const publicKey = new IdentityPublicKey(1);
|
|
19
|
+
publicKey.setData(Buffer.alloc(36).fill('a'));
|
|
20
|
+
|
|
21
|
+
identity.setPublicKeys([publicKey]);
|
|
22
|
+
|
|
23
|
+
rawIdentity = identity.toObject();
|
|
45
24
|
|
|
46
25
|
metadataFixture = new Metadata({
|
|
47
26
|
blockHeight: 42,
|
|
@@ -60,14 +39,11 @@ describe('Identity', () => {
|
|
|
60
39
|
});
|
|
61
40
|
});
|
|
62
41
|
|
|
63
|
-
afterEach(() => {
|
|
64
|
-
});
|
|
65
|
-
|
|
66
42
|
describe('#constructor', () => {
|
|
67
43
|
it('should set variables from raw model', () => {
|
|
68
44
|
const instance = identity;
|
|
69
45
|
|
|
70
|
-
expect(instance.getId()
|
|
46
|
+
expect(instance.getId()).to.deep.equal(rawIdentity.id);
|
|
71
47
|
expect(
|
|
72
48
|
instance.getPublicKeys().map((pk) => pk.toObject()),
|
|
73
49
|
).to.deep.equal(
|
|
@@ -78,7 +54,7 @@ describe('Identity', () => {
|
|
|
78
54
|
|
|
79
55
|
describe('#getId', () => {
|
|
80
56
|
it('should return set id', () => {
|
|
81
|
-
expect(identity.getId()
|
|
57
|
+
expect(identity.getId()).to.deep.equal(rawIdentity.id);
|
|
82
58
|
});
|
|
83
59
|
});
|
|
84
60
|
|
|
@@ -99,15 +75,20 @@ describe('Identity', () => {
|
|
|
99
75
|
|
|
100
76
|
it('should set public keys', () => {
|
|
101
77
|
const rawKey = {
|
|
78
|
+
$version: '0',
|
|
102
79
|
id: 2,
|
|
103
80
|
type: KeyType.ECDSA_SECP256K1,
|
|
104
81
|
data: Buffer.alloc(36).fill('a'),
|
|
105
82
|
purpose: KeyPurpose.AUTHENTICATION,
|
|
106
83
|
securityLevel: KeySecurityLevel.MASTER,
|
|
107
84
|
readOnly: false,
|
|
85
|
+
disabledAt: null,
|
|
86
|
+
contractBounds: null,
|
|
108
87
|
};
|
|
109
88
|
|
|
110
|
-
const ipk = new IdentityPublicKey(
|
|
89
|
+
const ipk = new IdentityPublicKey(1);
|
|
90
|
+
ipk.setData(Buffer.alloc(36).fill('a'));
|
|
91
|
+
ipk.setId(2);
|
|
111
92
|
|
|
112
93
|
identity.setPublicKeys([ipk]);
|
|
113
94
|
expect(identity.getPublicKeys()).length(1);
|
|
@@ -136,7 +117,7 @@ describe('Identity', () => {
|
|
|
136
117
|
it('should return buffer', () => {
|
|
137
118
|
const result = identity.toBuffer();
|
|
138
119
|
expect(result).to.be.instanceOf(Buffer);
|
|
139
|
-
expect(result).to.have.length(
|
|
120
|
+
expect(result).to.have.length(82);
|
|
140
121
|
});
|
|
141
122
|
});
|
|
142
123
|
|
|
@@ -153,12 +134,6 @@ describe('Identity', () => {
|
|
|
153
134
|
it('should return the same has as JS Identity', () => {
|
|
154
135
|
const expectedHash = hashFunction(identity.toBuffer());
|
|
155
136
|
const result = identity.hash();
|
|
156
|
-
|
|
157
|
-
const identityDataToEncode = identity.toObject();
|
|
158
|
-
delete identityDataToEncode.protocolVersion;
|
|
159
|
-
|
|
160
|
-
varint.encode(identity.getProtocolVersion());
|
|
161
|
-
|
|
162
137
|
expect(result).to.deep.equal(expectedHash);
|
|
163
138
|
});
|
|
164
139
|
});
|
|
@@ -166,10 +141,6 @@ describe('Identity', () => {
|
|
|
166
141
|
describe('#toObject', () => {
|
|
167
142
|
it('should return plain object representation', () => {
|
|
168
143
|
const identityObject = identity.toObject();
|
|
169
|
-
|
|
170
|
-
// We can't compare Identifier directly - it needs to be converted into a Buffer
|
|
171
|
-
rawIdentity.id = rawIdentity.id.toBuffer();
|
|
172
|
-
|
|
173
144
|
expect(identityObject).to.deep.equal(rawIdentity);
|
|
174
145
|
});
|
|
175
146
|
});
|
|
@@ -179,16 +150,19 @@ describe('Identity', () => {
|
|
|
179
150
|
const jsonIdentity = identity.toJSON();
|
|
180
151
|
|
|
181
152
|
expect(jsonIdentity).to.deep.equal({
|
|
182
|
-
|
|
183
|
-
id: rawIdentity.id.toString(),
|
|
153
|
+
$version: '0',
|
|
154
|
+
id: Identifier.from(rawIdentity.id).toString(),
|
|
184
155
|
publicKeys: [
|
|
185
156
|
{
|
|
157
|
+
$version: '0',
|
|
186
158
|
id: 0,
|
|
187
159
|
type: KeyType.ECDSA_SECP256K1,
|
|
188
160
|
data: rawIdentity.publicKeys[0].data.toString('base64'),
|
|
189
161
|
purpose: KeyPurpose.AUTHENTICATION,
|
|
190
162
|
securityLevel: KeySecurityLevel.MASTER,
|
|
191
163
|
readOnly: false,
|
|
164
|
+
disabledAt: null,
|
|
165
|
+
contractBounds: null,
|
|
192
166
|
},
|
|
193
167
|
],
|
|
194
168
|
balance: 0,
|
|
@@ -260,27 +234,15 @@ describe('Identity', () => {
|
|
|
260
234
|
|
|
261
235
|
describe('#getPublicKeyMaxId', () => {
|
|
262
236
|
it('should get the biggest public key ID', () => {
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
identity.addPublicKeys(
|
|
273
|
-
key,
|
|
274
|
-
new IdentityPublicKey({
|
|
275
|
-
id: 50,
|
|
276
|
-
type: KeyType.ECDSA_SECP256K1,
|
|
277
|
-
data: Buffer.alloc(36).fill('a'),
|
|
278
|
-
purpose: KeyPurpose.AUTHENTICATION,
|
|
279
|
-
securityLevel: KeySecurityLevel.MASTER,
|
|
280
|
-
signature: Buffer.alloc(36).fill('a'),
|
|
281
|
-
readOnly: false,
|
|
282
|
-
}),
|
|
283
|
-
);
|
|
237
|
+
const key1 = new IdentityPublicKey(1);
|
|
238
|
+
key1.setId(99);
|
|
239
|
+
key1.setData(Buffer.alloc(36).fill('a'));
|
|
240
|
+
|
|
241
|
+
const key2 = new IdentityPublicKey(1);
|
|
242
|
+
key2.setId(50);
|
|
243
|
+
key2.setData(Buffer.alloc(36).fill('a'));
|
|
244
|
+
|
|
245
|
+
identity.addPublicKeys([key1, key2]);
|
|
284
246
|
|
|
285
247
|
const maxId = identity.getPublicKeyMaxId();
|
|
286
248
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
const getInstantAssetLockProofFixture = require('../../../lib/test/fixtures/getInstantAssetLockProofFixture');
|
|
2
2
|
const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
|
|
3
3
|
const getChainAssetLockProofFixture = require('../../../lib/test/fixtures/getChainAssetLockProofFixture');
|
|
4
|
-
const {
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const {
|
|
5
|
+
Identity, IdentityFactory,
|
|
6
|
+
InstantAssetLockProof, ChainAssetLockProof, IdentityUpdateTransition,
|
|
7
|
+
IdentityCreateTransition, IdentityTopUpTransition, IdentityPublicKeyWithWitness,
|
|
8
|
+
InvalidIdentityError, UnsupportedProtocolVersionError,
|
|
9
|
+
} = require('../../..');
|
|
10
|
+
const { SerializedObjectParsingError } = require('../../..');
|
|
7
11
|
|
|
8
12
|
describe('IdentityFactory', () => {
|
|
9
13
|
let factory;
|
|
@@ -12,47 +16,17 @@ describe('IdentityFactory', () => {
|
|
|
12
16
|
let chainAssetLockProof;
|
|
13
17
|
let fakeTime;
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
let IdentityFactory;
|
|
17
|
-
let IdentityValidator;
|
|
18
|
-
let InstantAssetLockProof;
|
|
19
|
-
let IdentityCreateTransition;
|
|
20
|
-
let IdentityTopUpTransition;
|
|
21
|
-
let IdentityUpdateTransition;
|
|
22
|
-
let IdentityPublicKeyWithWitness;
|
|
23
|
-
let InvalidIdentityError;
|
|
24
|
-
let UnsupportedProtocolVersionError;
|
|
25
|
-
let ChainAssetLockProof;
|
|
26
|
-
|
|
27
|
-
before(async () => {
|
|
28
|
-
({
|
|
29
|
-
Identity, IdentityFactory, IdentityValidator,
|
|
30
|
-
InstantAssetLockProof, ChainAssetLockProof, IdentityUpdateTransition,
|
|
31
|
-
IdentityCreateTransition, IdentityTopUpTransition, IdentityPublicKeyWithWitness,
|
|
32
|
-
InvalidIdentityError, UnsupportedProtocolVersionError,
|
|
33
|
-
} = await loadWasmDpp());
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
beforeEach(async function () {
|
|
37
|
-
// const instantAssetLockProofJS = ;
|
|
38
|
-
// const chainAssetLockProofJS = ;
|
|
19
|
+
beforeEach(async function beforeEach() {
|
|
39
20
|
instantAssetLockProof = await getInstantAssetLockProofFixture();
|
|
40
21
|
chainAssetLockProof = new ChainAssetLockProof(getChainAssetLockProofFixture().toObject());
|
|
41
22
|
|
|
42
|
-
const blsAdapter = await getBlsAdapterMock();
|
|
43
|
-
|
|
44
|
-
const identityValidator = new IdentityValidator(blsAdapter);
|
|
23
|
+
// const blsAdapter = await getBlsAdapterMock();
|
|
45
24
|
|
|
46
|
-
|
|
47
|
-
1,
|
|
48
|
-
identityValidator,
|
|
49
|
-
);
|
|
25
|
+
// const identityValidator = new IdentityValidator(blsAdapter);
|
|
50
26
|
|
|
51
|
-
|
|
52
|
-
identityObject.id = instantAssetLockProof.createIdentifier();
|
|
27
|
+
factory = new IdentityFactory(1);
|
|
53
28
|
|
|
54
|
-
identity =
|
|
55
|
-
identity.setAssetLockProof(instantAssetLockProof);
|
|
29
|
+
identity = await getIdentityFixture(instantAssetLockProof.createIdentifier());
|
|
56
30
|
identity.setBalance(0);
|
|
57
31
|
|
|
58
32
|
fakeTime = this.sinonSandbox.useFakeTimers(new Date());
|
|
@@ -64,15 +38,12 @@ describe('IdentityFactory', () => {
|
|
|
64
38
|
|
|
65
39
|
describe('#create', () => {
|
|
66
40
|
it('should create Identity from asset lock transaction, output index, proof and public keys', () => {
|
|
67
|
-
const publicKeys = identity
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
...identityPublicKey.toObject(),
|
|
71
|
-
readonly: true,
|
|
72
|
-
}));
|
|
41
|
+
const publicKeys = identity.getPublicKeys();
|
|
42
|
+
publicKeys.forEach((key) => key.setReadOnly(true));
|
|
43
|
+
identity.setPublicKeys(publicKeys);
|
|
73
44
|
|
|
74
45
|
const result = factory.create(
|
|
75
|
-
instantAssetLockProof,
|
|
46
|
+
instantAssetLockProof.createIdentifier(),
|
|
76
47
|
publicKeys,
|
|
77
48
|
);
|
|
78
49
|
|
|
@@ -81,7 +52,8 @@ describe('IdentityFactory', () => {
|
|
|
81
52
|
});
|
|
82
53
|
});
|
|
83
54
|
|
|
84
|
-
|
|
55
|
+
// TODO(versioning): re-check. Not used anymore
|
|
56
|
+
describe.skip('#createFromObject', () => {
|
|
85
57
|
it('should skip validation if options is set', () => {
|
|
86
58
|
const identityObject = identity.toObject();
|
|
87
59
|
identityObject.protocolVersion = 100;
|
|
@@ -89,7 +61,8 @@ describe('IdentityFactory', () => {
|
|
|
89
61
|
expect(result).to.exist();
|
|
90
62
|
});
|
|
91
63
|
|
|
92
|
-
|
|
64
|
+
// TODO(versioning): restore
|
|
65
|
+
it.skip('should throw an error if validation have failed', () => {
|
|
93
66
|
const identityObject = identity.toObject();
|
|
94
67
|
identityObject.protocolVersion = 3;
|
|
95
68
|
|
|
@@ -126,7 +99,8 @@ describe('IdentityFactory', () => {
|
|
|
126
99
|
expect(result.toObject()).to.deep.equal(rawIdentity);
|
|
127
100
|
});
|
|
128
101
|
|
|
129
|
-
|
|
102
|
+
// TODO(versioning): restore
|
|
103
|
+
it.skip('should throw InvalidIdentityError if the decoding fails with consensus error', () => {
|
|
130
104
|
try {
|
|
131
105
|
// Mess up protocol version
|
|
132
106
|
serializedIdentity[0] = 3;
|
|
@@ -141,7 +115,8 @@ describe('IdentityFactory', () => {
|
|
|
141
115
|
}
|
|
142
116
|
});
|
|
143
117
|
|
|
144
|
-
|
|
118
|
+
// TODO(versioning): restore
|
|
119
|
+
it.skip('should throw an error if decoding fails with any other error', () => {
|
|
145
120
|
try {
|
|
146
121
|
serializedIdentity = serializedIdentity.slice(4);
|
|
147
122
|
factory.createFromBuffer(serializedIdentity);
|
|
@@ -172,7 +147,11 @@ describe('IdentityFactory', () => {
|
|
|
172
147
|
|
|
173
148
|
describe('#createIdentityCreateTransition', () => {
|
|
174
149
|
it('should create IdentityCreateTransition from Identity model', () => {
|
|
175
|
-
const stateTransition = factory.createIdentityCreateTransition(
|
|
150
|
+
const stateTransition = factory.createIdentityCreateTransition(
|
|
151
|
+
identity,
|
|
152
|
+
instantAssetLockProof,
|
|
153
|
+
1,
|
|
154
|
+
);
|
|
176
155
|
|
|
177
156
|
expect(stateTransition).to.be.instanceOf(IdentityCreateTransition);
|
|
178
157
|
const keysToExpect = stateTransition.getPublicKeys()
|
|
@@ -182,8 +161,14 @@ describe('IdentityFactory', () => {
|
|
|
182
161
|
return keyObject;
|
|
183
162
|
});
|
|
184
163
|
|
|
164
|
+
const actualKeys = identity.getPublicKeys().map((key) => {
|
|
165
|
+
const keyObject = key.toObject();
|
|
166
|
+
delete keyObject.disabledAt;
|
|
167
|
+
return keyObject;
|
|
168
|
+
});
|
|
169
|
+
|
|
185
170
|
expect(keysToExpect)
|
|
186
|
-
.to.deep.equal(
|
|
171
|
+
.to.deep.equal(actualKeys);
|
|
187
172
|
expect(stateTransition.getAssetLockProof().toObject())
|
|
188
173
|
.to.deep.equal(instantAssetLockProof.toObject());
|
|
189
174
|
});
|
|
@@ -191,13 +176,14 @@ describe('IdentityFactory', () => {
|
|
|
191
176
|
|
|
192
177
|
describe('createChainAssetLockProof', () => {
|
|
193
178
|
it('should create IdentityCreateTransition from Identity model', async () => {
|
|
194
|
-
|
|
195
|
-
identityObject.id = chainAssetLockProof.createIdentifier();
|
|
196
|
-
identity = new Identity(identityObject);
|
|
197
|
-
identity.setAssetLockProof(chainAssetLockProof);
|
|
179
|
+
identity = await getIdentityFixture(chainAssetLockProof.createIdentifier());
|
|
198
180
|
identity.setBalance(0);
|
|
199
181
|
|
|
200
|
-
const stateTransition = factory.createIdentityCreateTransition(
|
|
182
|
+
const stateTransition = factory.createIdentityCreateTransition(
|
|
183
|
+
identity,
|
|
184
|
+
chainAssetLockProof,
|
|
185
|
+
1,
|
|
186
|
+
);
|
|
201
187
|
|
|
202
188
|
expect(stateTransition).to.be.instanceOf(IdentityCreateTransition);
|
|
203
189
|
const keysToExpect = stateTransition.getPublicKeys()
|
|
@@ -207,8 +193,14 @@ describe('IdentityFactory', () => {
|
|
|
207
193
|
return keyObject;
|
|
208
194
|
});
|
|
209
195
|
|
|
196
|
+
const actualKeys = identity.getPublicKeys().map((key) => {
|
|
197
|
+
const keyObject = key.toObject();
|
|
198
|
+
delete keyObject.disabledAt;
|
|
199
|
+
return keyObject;
|
|
200
|
+
});
|
|
201
|
+
|
|
210
202
|
expect(keysToExpect)
|
|
211
|
-
.to.deep.equal(
|
|
203
|
+
.to.deep.equal(actualKeys);
|
|
212
204
|
|
|
213
205
|
expect(stateTransition.getAssetLockProof().toObject())
|
|
214
206
|
.to.deep.equal(chainAssetLockProof.toObject());
|
|
@@ -234,15 +226,10 @@ describe('IdentityFactory', () => {
|
|
|
234
226
|
it('should create IdentityUpdateTransition', () => {
|
|
235
227
|
const revision = 1;
|
|
236
228
|
const disablePublicKeys = [identity.getPublicKeyById(0)];
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
242
|
-
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
243
|
-
readOnly: false,
|
|
244
|
-
signature: Buffer.alloc(0),
|
|
245
|
-
})];
|
|
229
|
+
const key = new IdentityPublicKeyWithWitness(1);
|
|
230
|
+
key.setData(Buffer.from('AuryIuMtRrl/VviQuyLD1l4nmxi9ogPzC9LT7tdpo0di', 'base64'));
|
|
231
|
+
|
|
232
|
+
const addPublicKeys = [key];
|
|
246
233
|
|
|
247
234
|
const stateTransition = factory
|
|
248
235
|
.createIdentityUpdateTransition(
|
|
@@ -256,8 +243,8 @@ describe('IdentityFactory', () => {
|
|
|
256
243
|
expect(stateTransition).to.be.instanceOf(IdentityUpdateTransition);
|
|
257
244
|
expect(stateTransition.getIdentityId().toBuffer()).to.deep.equal(identity.getId().toBuffer());
|
|
258
245
|
expect(stateTransition.getRevision()).to.deep.equal(revision);
|
|
259
|
-
expect(stateTransition.getPublicKeysToAdd().map((
|
|
260
|
-
.to.deep.equal(addPublicKeys.map((
|
|
246
|
+
expect(stateTransition.getPublicKeysToAdd().map((k) => k.toObject()))
|
|
247
|
+
.to.deep.equal(addPublicKeys.map((k) => k.toObject()));
|
|
261
248
|
expect(stateTransition.getPublicKeyIdsToDisable()).to.deep.equal([0]);
|
|
262
249
|
expect(stateTransition.getPublicKeysDisabledAt()).to.deep.equal(new Date());
|
|
263
250
|
});
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const { IdentityPublicKey } = require('@dashevo/wasm-dpp');
|
|
2
2
|
|
|
3
3
|
describe('IdentityPublicKey', () => {
|
|
4
4
|
let rawPublicKey;
|
|
5
5
|
let publicKey;
|
|
6
|
-
let IdentityPublicKey;
|
|
7
6
|
|
|
8
|
-
beforeEach(
|
|
9
|
-
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
const keyData = Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH', 'base64');
|
|
10
9
|
|
|
11
10
|
rawPublicKey = {
|
|
12
11
|
id: 0,
|
|
13
12
|
type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
|
|
14
|
-
data:
|
|
13
|
+
data: keyData,
|
|
15
14
|
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
16
15
|
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
17
16
|
readOnly: false,
|
|
17
|
+
contractBounds: null,
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
publicKey = new IdentityPublicKey(1);
|
|
21
|
+
publicKey.setData(keyData);
|
|
20
22
|
});
|
|
21
23
|
|
|
22
24
|
describe('#constructor', () => {
|
|
23
25
|
it('should set variables from raw model', () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
expect(
|
|
27
|
-
expect(instance.getType()).to.equal(rawPublicKey.type);
|
|
28
|
-
expect(instance.getData()).to.deep.equal(rawPublicKey.data);
|
|
26
|
+
expect(publicKey.getId()).to.equal(rawPublicKey.id);
|
|
27
|
+
expect(publicKey.getType()).to.equal(rawPublicKey.type);
|
|
28
|
+
expect(publicKey.getData()).to.deep.equal(rawPublicKey.data);
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
31
|
|
|
@@ -145,17 +145,9 @@ describe('IdentityPublicKey', () => {
|
|
|
145
145
|
});
|
|
146
146
|
|
|
147
147
|
it('should return data in case ECDSA_HASH160', () => {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
data: Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTdi', 'base64'),
|
|
152
|
-
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
153
|
-
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
154
|
-
readOnly: false,
|
|
155
|
-
disabledAt: 123,
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
publicKey = new IdentityPublicKey(rawPublicKey);
|
|
148
|
+
publicKey = new IdentityPublicKey(1);
|
|
149
|
+
publicKey.setType(IdentityPublicKey.TYPES.ECDSA_HASH160);
|
|
150
|
+
publicKey.setData(Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTdi', 'base64'));
|
|
159
151
|
|
|
160
152
|
const result = publicKey.hash();
|
|
161
153
|
|
|
@@ -165,17 +157,9 @@ describe('IdentityPublicKey', () => {
|
|
|
165
157
|
});
|
|
166
158
|
|
|
167
159
|
it('should return original public key hash in case BLS12_381', () => {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
data: Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'),
|
|
172
|
-
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
173
|
-
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
174
|
-
readOnly: false,
|
|
175
|
-
disabledAt: 123,
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
publicKey = new IdentityPublicKey(rawPublicKey);
|
|
160
|
+
publicKey = new IdentityPublicKey(1);
|
|
161
|
+
publicKey.setType(IdentityPublicKey.TYPES.BLS12_381);
|
|
162
|
+
publicKey.setData(Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'));
|
|
179
163
|
|
|
180
164
|
const result = publicKey.hash();
|
|
181
165
|
|
|
@@ -185,17 +169,9 @@ describe('IdentityPublicKey', () => {
|
|
|
185
169
|
});
|
|
186
170
|
|
|
187
171
|
it('should return data in case BIP13_SCRIPT_HASH', () => {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
data: Buffer.from('54c557e07dde5bb6cb791c7a540e0a4796f5e97e', 'hex'),
|
|
192
|
-
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
193
|
-
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
194
|
-
readOnly: false,
|
|
195
|
-
disabledAt: 123,
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
publicKey = new IdentityPublicKey(rawPublicKey);
|
|
172
|
+
publicKey = new IdentityPublicKey(1);
|
|
173
|
+
publicKey.setType(IdentityPublicKey.TYPES.BIP13_SCRIPT_HASH);
|
|
174
|
+
publicKey.setData(Buffer.from('54c557e07dde5bb6cb791c7a540e0a4796f5e97e', 'hex'));
|
|
199
175
|
|
|
200
176
|
const result = publicKey.hash();
|
|
201
177
|
|
|
@@ -207,32 +183,42 @@ describe('IdentityPublicKey', () => {
|
|
|
207
183
|
|
|
208
184
|
describe('#toJSON', () => {
|
|
209
185
|
it('should return JSON representation', () => {
|
|
186
|
+
const now = new Date();
|
|
187
|
+
publicKey.setDisabledAt(now);
|
|
188
|
+
|
|
210
189
|
const jsonPublicKey = publicKey.toJSON();
|
|
211
190
|
|
|
212
191
|
expect(jsonPublicKey).to.deep.equal({
|
|
192
|
+
$version: '0',
|
|
213
193
|
id: 0,
|
|
214
194
|
type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
|
|
215
195
|
data: 'AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH',
|
|
216
196
|
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
217
197
|
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
218
198
|
readOnly: false,
|
|
199
|
+
disabledAt: now.getTime(),
|
|
200
|
+
contractBounds: null,
|
|
219
201
|
});
|
|
220
202
|
});
|
|
203
|
+
});
|
|
221
204
|
|
|
222
|
-
|
|
205
|
+
describe('#toObject', () => {
|
|
206
|
+
it('should return object representation', () => {
|
|
223
207
|
const now = new Date();
|
|
224
208
|
publicKey.setDisabledAt(now);
|
|
225
209
|
|
|
226
|
-
const jsonPublicKey = publicKey.
|
|
210
|
+
const jsonPublicKey = publicKey.toObject();
|
|
227
211
|
|
|
228
212
|
expect(jsonPublicKey).to.deep.equal({
|
|
213
|
+
$version: '0',
|
|
229
214
|
id: 0,
|
|
230
215
|
type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
|
|
231
|
-
data: 'AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH',
|
|
216
|
+
data: Buffer.from('AkVuTKyF3YgKLAQlLEtaUL2HTditwGILfWUVqjzYnIgH', 'base64'),
|
|
232
217
|
purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
|
|
233
218
|
securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
|
|
234
219
|
readOnly: false,
|
|
235
220
|
disabledAt: now.getTime(),
|
|
221
|
+
contractBounds: null,
|
|
236
222
|
});
|
|
237
223
|
});
|
|
238
224
|
});
|