test: unify identity versioned cost coverage (#2416) #4982
tests.yml
on: push
Build JS packages
/
Build JS
4m 28s
Matrix: Build Docker images
Determine changed packages
18s
Rust crates security audit
1m 12s
JS dependency versions check
10s
JS NPM security audit
12s
JS code security audit
/
Run Code QL
2m 51s
Packages functional tests
/
Run functional tests
2m 11s
Matrix: Test Suite
Matrix: Dashmate E2E tests
Waiting for pending jobs
Matrix: JS packages
Waiting for pending jobs
Matrix: Rust packages
Annotations
4 errors, 32 warnings, and 13 notices
JS NPM security audit
Process completed with exit code 1.
|
Build JS packages / Build JS
Unable to download artifact(s): Artifact not found for name: js-build-a809df7cb5cf800fda629ba84f4ba3871984c087
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md
|
JS code security audit / Run Code QL
CodeQL Action major versions v1 and v2 have been deprecated. Please update all occurrences of the CodeQL Action in your workflow files to v3. For more information, see https://github.blog/changelog/2025-01-10-code-scanning-codeql-action-v2-is-now-deprecated/
|
Tests
Error when evaluating 'strategy' for job 'js-packages'. .github/workflows/tests.yml (Line: 119, Col: 21): Matrix vector 'js-package' does not contain any values
|
Rust crates security audit
2 warnings found!
|
Rust crates security audit
Unknown warning kind unsound found, please, file a bug
|
elided lifetime has a name:
packages/rs-platform-value/src/inner_value.rs#L364
warning: elided lifetime has a name
--> packages/rs-platform-value/src/inner_value.rs:364:66
|
364 | pub fn get_array_slice<'a>(&'a self, key: &'a str) -> Result<&[Value], Error> {
| -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a`
|
= note: `#[warn(elided_named_lifetimes)]` on by default
|
unused import: `platform_value::Identifier`:
packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs#L11
warning: unused import: `platform_value::Identifier`
--> packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs:11:5
|
11 | use platform_value::Identifier;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
unused import: `crate::state_transition::GetDataContractSecurityLevelRequirementFn`:
packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs#L15
warning: unused import: `crate::state_transition::GetDataContractSecurityLevelRequirementFn`
--> packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs:15:5
|
15 | use crate::state_transition::GetDataContractSecurityLevelRequirementFn;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
this `else { if .. }` block can be collapsed:
packages/rs-drive/src/query/mod.rs#L1324
warning: this `else { if .. }` block can be collapsed
--> packages/rs-drive/src/query/mod.rs:1324:16
|
1324 | } else {
| ________________^
1325 | | if let Some(start_at_key) = start_at_key {
1326 | | inner_query.insert_range_to(..start_at_key);
1327 | | } else {
... |
1331 | | }
1332 | | }
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_else_if
= note: `#[warn(clippy::collapsible_else_if)]` on by default
help: collapse nested if block
|
1324 ~ } else if let Some(start_at_key) = start_at_key {
1325 + inner_query.insert_range_to(..start_at_key);
1326 + } else {
1327 + //todo: really not sure if this is correct
1328 + // Should investigate more
1329 + inner_query.insert_key(vec![]);
1330 + }
|
|
doc list item without indentation:
packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs#L26
warning: doc list item without indentation
--> packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs:26:9
|
26 | /// start fetching the contract's history.
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
= note: `#[warn(clippy::doc_lazy_continuation)]` on by default
help: indent this line
|
26 | /// start fetching the contract's history.
| ++
|
doc list item without indentation:
packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs#L29
warning: doc list item without indentation
--> packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs:29:9
|
29 | /// to return. If `None`, the limit is set to 10. Should be between 1 and 10.
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
help: indent this line
|
29 | /// to return. If `None`, the limit is set to 10. Should be between 1 and 10.
| ++
|
doc list item without indentation:
packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs#L32
warning: doc list item without indentation
--> packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs:32:9
|
32 | /// before starting to return them. If `None`, no entries are skipped.
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
help: indent this line
|
32 | /// before starting to return them. If `None`, no entries are skipped.
| ++
|
doc list item without indentation:
packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs#L37
warning: doc list item without indentation
--> packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs:37:9
|
37 | /// a `BTreeMap` with Unix timestamp as the key and contract as the value, representing
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
help: indent this line
|
37 | /// a `BTreeMap` with Unix timestamp as the key and contract as the value, representing
| ++
|
doc list item without indentation:
packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs#L38
warning: doc list item without indentation
--> packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs:38:9
|
38 | /// the contract's history. The `Err` variant contains an `Error` in case of a failure.
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
help: indent this line
|
38 | /// the contract's history. The `Err` variant contains an `Error` in case of a failure.
| ++
|
doc list item without indentation:
packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs#L45
warning: doc list item without indentation
--> packages/rs-drive/src/drive/contract/get_fetch/fetch_contract_with_history/v0/mod.rs:45:9
|
45 | /// contract history.
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
help: indent this line
|
45 | /// contract history.
| ++
|
elided lifetime has a name:
packages/rs-platform-value/src/inner_value.rs#L364
warning: elided lifetime has a name
--> packages/rs-platform-value/src/inner_value.rs:364:66
|
364 | pub fn get_array_slice<'a>(&'a self, key: &'a str) -> Result<&[Value], Error> {
| -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a`
|
= note: `#[warn(elided_named_lifetimes)]` on by default
|
unused import: `crate::util::type_constants::DEFAULT_HASH_SIZE_U8`:
packages/rs-drive/src/drive/document/paths.rs#L2
warning: unused import: `crate::util::type_constants::DEFAULT_HASH_SIZE_U8`
--> packages/rs-drive/src/drive/document/paths.rs:2:5
|
2 | use crate::util::type_constants::DEFAULT_HASH_SIZE_U8;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
unused import: `dpp::data_contract::document_type::accessors::DocumentTypeV0Getters`:
packages/rs-drive/src/drive/document/paths.rs#L3
warning: unused import: `dpp::data_contract::document_type::accessors::DocumentTypeV0Getters`
--> packages/rs-drive/src/drive/document/paths.rs:3:5
|
3 | use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `dpp::data_contract::document_type::methods::DocumentTypeV0Methods`:
packages/rs-drive/src/drive/document/paths.rs#L4
warning: unused import: `dpp::data_contract::document_type::methods::DocumentTypeV0Methods`
--> packages/rs-drive/src/drive/document/paths.rs:4:5
|
4 | use dpp::data_contract::document_type::methods::DocumentTypeV0Methods;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `dpp::data_contract::document_type::DocumentTypeRef`:
packages/rs-drive/src/drive/document/paths.rs#L5
warning: unused import: `dpp::data_contract::document_type::DocumentTypeRef`
--> packages/rs-drive/src/drive/document/paths.rs:5:5
|
5 | use dpp::data_contract::document_type::DocumentTypeRef;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
function `contract_documents_primary_key_path` is never used:
packages/rs-drive/src/drive/document/paths.rs#L41
warning: function `contract_documents_primary_key_path` is never used
--> packages/rs-drive/src/drive/document/paths.rs:41:15
|
41 | pub(crate) fn contract_documents_primary_key_path<'a>(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
unused import: `identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0`:
packages/rs-drive/src/drive/identity/key/fetch/mod.rs#L16
warning: unused import: `identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0`
--> packages/rs-drive/src/drive/identity/key/fetch/mod.rs:16:9
|
16 | identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo`:
packages/rs-drive/src/drive/votes/resolved/vote_polls/contested_document_resource_vote_poll/resolve.rs#L3
warning: unused import: `crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo`
--> packages/rs-drive/src/drive/votes/resolved/vote_polls/contested_document_resource_vote_poll/resolve.rs:3:5
|
3 | use crate::drive::votes::resolved::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePollWithContractInfo;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `crate::drive::Drive`:
packages/rs-drive/src/drive/votes/resolved/vote_polls/contested_document_resource_vote_poll/resolve.rs#L6
warning: unused import: `crate::drive::Drive`
--> packages/rs-drive/src/drive/votes/resolved/vote_polls/contested_document_resource_vote_poll/resolve.rs:6:5
|
6 | use crate::drive::Drive;
| ^^^^^^^^^^^^^^^^^^^
|
unused import: `crate::util::object_size_info::DataContractOwnedResolvedInfo`:
packages/rs-drive/src/drive/votes/resolved/vote_polls/contested_document_resource_vote_poll/resolve.rs#L11
warning: unused import: `crate::util::object_size_info::DataContractOwnedResolvedInfo`
--> packages/rs-drive/src/drive/votes/resolved/vote_polls/contested_document_resource_vote_poll/resolve.rs:11:5
|
11 | use crate::util::object_size_info::DataContractOwnedResolvedInfo;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
elided lifetime has a name:
packages/rs-platform-value/src/inner_value.rs#L364
warning: elided lifetime has a name
--> packages/rs-platform-value/src/inner_value.rs:364:66
|
364 | pub fn get_array_slice<'a>(&'a self, key: &'a str) -> Result<&[Value], Error> {
| -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a`
|
= note: `#[warn(elided_named_lifetimes)]` on by default
|
unused import: `platform_value::Identifier`:
packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs#L11
warning: unused import: `platform_value::Identifier`
--> packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs:11:5
|
11 | use platform_value::Identifier;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
unused import: `crate::state_transition::GetDataContractSecurityLevelRequirementFn`:
packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs#L15
warning: unused import: `crate::state_transition::GetDataContractSecurityLevelRequirementFn`
--> packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_transfer_transition/v0/v0_methods.rs:15:5
|
15 | use crate::state_transition::GetDataContractSecurityLevelRequirementFn;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
this `else { if .. }` block can be collapsed:
packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs#L268
warning: this `else { if .. }` block can be collapsed
--> packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs:268:24
|
268 | } else {
| ________________________^
269 | | if let Some((_, found_old_key)) = identity_to_enable_old_keys
270 | | .iter()
271 | | .find(|(_, key)| key.purpose() == Purpose::TRANSFER)
... |
282 | | }
283 | | };
| |_________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_else_if
= note: `#[warn(clippy::collapsible_else_if)]` on by default
help: collapse nested if block
|
268 ~ } else if let Some((_, found_old_key)) = identity_to_enable_old_keys
269 + .iter()
270 + .find(|(_, key)| key.purpose() == Purpose::TRANSFER)
271 + {
272 + Some(found_old_key.data().to_vec().try_into().map_err(|_| {
273 + Error::Execution(ExecutionError::CorruptedDriveResponse(
274 + "old payout address should be 20 bytes".to_string(),
275 + ))
276 + })?)
277 + } else {
278 + // finally we just use the old masternode payout address
279 + // we need to use the old pub_key_operator
280 + old_masternode.state.operator_payout_address
281 ~ };
|
|
the `Err`-variant returned from this function is very large:
packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs#L44
warning: the `Err`-variant returned from this function is very large
--> packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs:44:10
|
44 | ) -> Result<(), Error> {
| ^^^^^^^^^^^^^^^^^
|
::: packages/rs-drive-abci/src/error/mod.rs:28:5
|
28 | Abci(#[from] AbciError),
| ----------------------- the largest variant contains at least 208 bytes
|
= help: try reducing the size of `error::Error`, for example by boxing large elements or replacing it with `Box<error::Error>`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
|
taken reference of right operand:
packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs#L323
warning: taken reference of right operand
--> packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs:323:42
|
323 | .find(|(_, key)| key.data().as_slice() == &new_payout_address)
| ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------
| |
| help: use the right value directly: `new_payout_address`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref
= note: `#[warn(clippy::op_ref)]` on by default
|
taken reference of right operand:
packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs#L347
warning: taken reference of right operand
--> packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_operator_identity/v0/mod.rs:347:42
|
347 | .find(|(_, key)| key.data().as_slice() == &new_platform_node_id)
| ^^^^^^^^^^^^^^^^^^^^^^^^^---------------------
| |
| help: use the right value directly: `new_platform_node_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref
|
unexpected `cfg` condition name: `tokio_unstable`:
packages/rs-drive-abci/src/utils/spawn.rs#L13
warning: unexpected `cfg` condition name: `tokio_unstable`
--> packages/rs-drive-abci/src/utils/spawn.rs:13:15
|
13 | #[cfg(all(tokio_unstable, feature = "console"))]
| ^^^^^^^^^^^^^^
|
= help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows`
= help: consider using a Cargo feature instead
= help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
= help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tokio_unstable)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
= note: `#[warn(unexpected_cfgs)]` on by default
|
unexpected `cfg` condition name: `tokio_unstable`:
packages/rs-drive-abci/src/utils/spawn.rs#L20
warning: unexpected `cfg` condition name: `tokio_unstable`
--> packages/rs-drive-abci/src/utils/spawn.rs:20:19
|
20 | #[cfg(not(all(tokio_unstable, feature = "console")))]
| ^^^^^^^^^^^^^^
|
= help: consider using a Cargo feature instead
= help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
= help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tokio_unstable)");` to the top of the `build.rs`
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
|
type `platform_types::platform_state::v0::old_structures::OldStructureValidatorSetV0` is more private than the item `platform_types::platform_state::v0::old_structures::OldStructureValidatorSet::V0::0`:
packages/rs-drive-abci/src/platform_types/platform_state/v0/old_structures/mod.rs#L9
warning: type `platform_types::platform_state::v0::old_structures::OldStructureValidatorSetV0` is more private than the item `platform_types::platform_state::v0::old_structures::OldStructureValidatorSet::V0::0`
--> packages/rs-drive-abci/src/platform_types/platform_state/v0/old_structures/mod.rs:9:8
|
9 | V0(OldStructureValidatorSetV0),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `platform_types::platform_state::v0::old_structures::OldStructureValidatorSet::V0::0` is reachable at visibility `pub`
|
note: but type `platform_types::platform_state::v0::old_structures::OldStructureValidatorSetV0` is only usable at visibility `pub(v0)`
--> packages/rs-drive-abci/src/platform_types/platform_state/v0/old_structures/mod.rs:25:1
|
25 | pub(super) struct OldStructureValidatorSetV0 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: `#[warn(private_interfaces)]` on by default
|
sccache stats
100% - 290 hits, 0 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
100% - 439 hits, 0 misses, 0 errors
|
sccache stats
100% - 441 hits, 0 misses, 0 errors
|
sccache stats
100% - 422 hits, 0 misses, 0 errors
|
sccache stats
100% - 559 hits, 0 misses, 0 errors
|
sccache stats
100% - 1030 hits, 0 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
100% - 204 hits, 0 misses, 0 errors
|
sccache stats
100% - 895 hits, 0 misses, 0 errors
|
sccache stats
100% - 443 hits, 0 misses, 0 errors
|
sccache stats
100% - 851 hits, 0 misses, 0 errors
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
dashpay~platform~4XVML1.dockerbuild
|
67 KB |
|
dashpay~platform~SXP560.dockerbuild
|
61 KB |
|
dashpay~platform~TWRAPJ.dockerbuild
|
66.2 KB |
|
js-build-a809df7cb5cf800fda629ba84f4ba3871984c087
|
17.5 MB |
|