feat: abci state sync #4972
tests.yml
on: pull_request
Build JS packages
/
Build JS
5m 1s
Matrix: Build Docker images
Determine changed packages
19s
Rust crates security audit
2m 15s
JS dependency versions check
9s
JS NPM security audit
11s
JS code security audit
/
Run Code QL
2m 27s
Packages functional tests
/
Run functional tests
15m 17s
Matrix: Test Suite
Matrix: Dashmate E2E tests
Matrix: JS packages
Matrix: Rust packages
Annotations
13 errors, 78 warnings, and 28 notices
JS NPM security audit
Process completed with exit code 1.
|
Rust packages (drive-abci) / Formatting
Process completed with exit code 1.
|
Build JS packages / Build JS
Unable to download artifact(s): Artifact not found for name: js-build-77a8929fa346eac2ef1cd463888c0b5419cc23a0
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 packages (dashmate) / Linting
Process completed with exit code 1.
|
JS packages (@dashevo/wallet-lib) / Tests
Process completed with exit code 1.
|
JS packages (@dashevo/wasm-dpp) / Linting
Process completed with exit code 1.
|
Dashmate E2E tests (Testnet Evonode, test/e2e/testnetEvonode.spec.js, false) / Run Testnet Evonode tests
Process completed with exit code 1.
|
Test Suite (Test Suite in browser (1), test:browsers, 0, 2) / Run Test Suite in browser (1)
Process completed with exit code 1.
|
Dashmate E2E tests (Testnet fullnode, test/e2e/testnetFullnode.spec.js, false) / Run Testnet fullnode tests
Process completed with exit code 1.
|
Test Suite (Test Suite, test:suite, 0, 0) / Run Test Suite
Process completed with exit code 1.
|
Rust packages (drive-abci) / Tests
Process completed with exit code 101.
|
Test Suite (Test Suite in browser (2), test:browsers, 1, 2) / Run Test Suite in browser (2)
The job running on runner GitHub Actions 12 has exceeded the maximum execution time of 15 minutes.
|
Packages functional tests / Run functional tests
The job running on runner GitHub Actions 7 has exceeded the maximum execution time of 15 minutes.
|
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
|
the following explicit lifetimes could be elided: 'a:
packages/rs-dpp/src/data_contract/document_type/accessors/mod.rs#L153
warning: the following explicit lifetimes could be elided: 'a
--> packages/rs-dpp/src/data_contract/document_type/accessors/mod.rs:153:6
|
153 | impl<'a> DocumentTypeV0Getters for DocumentTypeRef<'a> {
| ^^ ^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
= note: `#[warn(clippy::needless_lifetimes)]` on by default
help: elide the lifetimes
|
153 - impl<'a> DocumentTypeV0Getters for DocumentTypeRef<'a> {
153 + impl DocumentTypeV0Getters for DocumentTypeRef<'_> {
|
|
the following explicit lifetimes could be elided: 'a:
packages/rs-dpp/src/data_contract/document_type/accessors/mod.rs#L287
warning: the following explicit lifetimes could be elided: 'a
--> packages/rs-dpp/src/data_contract/document_type/accessors/mod.rs:287:6
|
287 | impl<'a> DocumentTypeV0Getters for DocumentTypeMutRef<'a> {
| ^^ ^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
help: elide the lifetimes
|
287 - impl<'a> DocumentTypeV0Getters for DocumentTypeMutRef<'a> {
287 + impl DocumentTypeV0Getters for DocumentTypeMutRef<'_> {
|
|
unneeded `return` statement:
packages/rs-dpp/src/data_contract/document_type/property/array.rs#L73
warning: unneeded `return` statement
--> packages/rs-dpp/src/data_contract/document_type/property/array.rs:73:9
|
73 | / return match self {
74 | | ArrayItemType::String(_, _) => {
75 | | let value_as_text = value.as_text().ok_or_else(get_field_type_matching_error)?;
76 | | let vec = value_as_text.as_bytes().to_vec();
... |
118 | | }
119 | | };
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
73 ~ match self {
74 + ArrayItemType::String(_, _) => {
75 + let value_as_text = value.as_text().ok_or_else(get_field_type_matching_error)?;
76 + let vec = value_as_text.as_bytes().to_vec();
77 + let mut r_vec = vec.len().encode_var_vec();
78 + r_vec.extend(vec);
79 + Ok(r_vec)
80 + }
81 + ArrayItemType::Date => {
82 + let value_as_f64 = value.to_float().map_err(ProtocolError::ValueError)?;
83 + let value_bytes = value_as_f64.to_be_bytes().to_vec();
84 + Ok(value_bytes)
85 + }
86 + ArrayItemType::Integer => {
87 + let value_as_i64: i64 = value.to_integer().map_err(ProtocolError::ValueError)?;
88 + let value_bytes = value_as_i64.to_be_bytes().to_vec();
89 + Ok(value_bytes)
90 + }
91 + ArrayItemType::Number => {
92 + let value_as_f64 = value.to_float().map_err(ProtocolError::ValueError)?;
93 + let value_bytes = value_as_f64.to_be_bytes().to_vec();
94 + Ok(value_bytes)
95 + }
96 + ArrayItemType::ByteArray(_, _) => {
97 + let mut bytes = value.to_binary_bytes()?;
98 +
99 + let mut r_vec = bytes.len().encode_var_vec();
100 + r_vec.append(&mut bytes);
101 + Ok(r_vec)
102 + }
103 + ArrayItemType::Identifier => {
104 + let mut bytes = value.to_identifier_bytes()?;
105 +
106 + let mut r_vec = bytes.len().encode_var_vec();
107 + r_vec.append(&mut bytes);
108 + Ok(r_vec)
109 + }
110 + ArrayItemType::Boolean => {
111 + let value_as_boolean = value.as_bool().ok_or_else(get_field_type_matching_error)?;
112 + // 0 means does not exist
113 + if value_as_boolean {
114 + Ok(vec![1]) // 1 is true
115 + } else {
116 + Ok(vec![0]) // 2 is false
117 + }
118 + }
119 ~ }
|
|
unneeded `return` statement:
packages/rs-dpp/src/data_contract/document_type/property/mod.rs#L955
warning: unneeded `return` statement
--> packages/rs-dpp/src/data_contract/document_type/property/mod.rs:955:9
|
955 | / return match self {
956 | | DocumentPropertyType::String(_) => {
957 | | let value_as_text = value
958 | | .as_text()
... |
1097 | | )),
1098 | | };
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
955 ~ match self {
956 + DocumentPropertyType::String(_) => {
957 + let value_as_text = value
958 + .as_text()
959 + .ok_or_else(|| get_field_type_matching_error(value))?;
960 + let vec = value_as_text.as_bytes().to_vec();
961 + let mut r_vec = vec.len().encode_var_vec();
962 + r_vec.extend(vec);
963 + Ok(r_vec)
964 + }
965 + // TODO: Make the same as in https://github.com/dashpay/platform/blob/8d2a9e54d62b77581c44a15a09a2c61864af37d3/packages/rs-dpp/src/document/v0/serialize.rs#L161
966 + // it must be u64 BE. Markers are wrong here as well
967 + DocumentPropertyType::Date => {
968 + let value_as_f64 = value.to_float().map_err(ProtocolError::ValueError)?;
969 + let mut value_bytes = value_as_f64.to_be_bytes().to_vec();
970 + if required {
971 + Ok(value_bytes)
972 + } else {
973 + // if the value wasn't required we need to add a byte to prove it existed
974 + let mut r_vec = vec![255u8];
975 + r_vec.append(&mut value_bytes);
976 + Ok(r_vec)
977 + }
978 + }
979 + DocumentPropertyType::U128 => {
980 + let value_as_u128: u128 = value.to_integer().map_err(ProtocolError::ValueError)?;
981 + Ok(value_as_u128.to_be_bytes().to_vec())
982 + }
983 + DocumentPropertyType::I128 => {
984 + let value_as_i128: i128 = value.to_integer().map_err(ProtocolError::ValueError)?;
985 + Ok(value_as_i128.to_be_bytes().to_vec())
986 + }
987 + DocumentPropertyType::U64 => {
988 + let value_as_u64: u64 = value.to_integer().map_err(ProtocolError::ValueError)?;
989 + Ok(value_as_u64.to_be_bytes().to_vec())
990 + }
991 + DocumentPropertyType::I64 => {
992 + let value_as_i64: i64 = value.to_integer().map_err(ProtocolError::ValueError)?;
993 + Ok(value_as_i64.to_be_bytes().to_vec())
994 + }
995 + DocumentPropertyType::U32 => {
996 + let value_as_u32: u32 = value.to_integer().map_err(ProtocolError::ValueError)?;
997 + Ok(value_as_u32.to_be_bytes().to_vec())
998 + }
999 + DocumentPropertyType::I32 => {
1000 + let value_as_i32: i32 = value.to_integer().map_err(ProtocolError::ValueError)?;
1001 + Ok(value_as_i32.to_be_bytes().to_vec())
1002 + }
1003 + DocumentPropertyType::U16 => {
1004 + let value_as_u16: u16 = value.to_integer().map_err(ProtocolError::ValueError)?;
1005 + Ok(value_as_u16.to_be_bytes().to_vec())
1006 + }
1007 + DocumentPropertyType::I16 => {
1008 + let value_as_i16: i16 = value.to_integer().map_err(ProtocolError::ValueError)?;
1009 + Ok(value_as_i16.to_be_bytes().to_vec())
1010 + }
1011 + DocumentPropertyType::U8 => {
1012 + let value_as_u8: u8 = value.to_integer().map_err(ProtocolError::ValueError)?;
1013 + Ok(value_as_u8.to_be_bytes().to_vec())
1014 + }
1015 + DocumentPropertyType::I8 => {
|
taken reference of right operand:
packages/rs-dpp/src/data_contract/document_type/property/mod.rs#L1203
warning: taken reference of right operand
--> packages/rs-dpp/src/data_contract/document_type/property/mod.rs:1203:20
|
1203 | if value == &vec![0] {
| ^^^^^^^^^--------
| |
| help: use the right value directly: `...`
|
= 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-dpp/src/data_contract/document_type/property/mod.rs#L1294
warning: taken reference of right operand
--> packages/rs-dpp/src/data_contract/document_type/property/mod.rs:1294:20
|
1294 | if value == &vec![0] {
| ^^^^^^^^^--------
| |
| help: use the right value directly: `...`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref
|
taken reference of right operand:
packages/rs-dpp/src/data_contract/document_type/property/mod.rs#L1296
warning: taken reference of right operand
--> packages/rs-dpp/src/data_contract/document_type/property/mod.rs:1296:27
|
1296 | } else if value == &vec![1] {
| ^^^^^^^^^--------
| |
| help: use the right value directly: `...`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref
|
the following explicit lifetimes could be elided: 'de:
packages/rs-dpp/src/data_contract/document_type/index/mod.rs#L99
warning: the following explicit lifetimes could be elided: 'de
--> packages/rs-dpp/src/data_contract/document_type/index/mod.rs:99:14
|
99 | impl<'de> Visitor<'de> for FieldVisitor {
| ^^^ ^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
help: elide the lifetimes
|
99 - impl<'de> Visitor<'de> for FieldVisitor {
99 + impl Visitor<'_> for FieldVisitor {
|
|
non-canonical implementation of `partial_cmp` on an `Ord` type:
packages/rs-dpp/src/data_contract/document_type/index/mod.rs#L157
warning: non-canonical implementation of `partial_cmp` on an `Ord` type
--> packages/rs-dpp/src/data_contract/document_type/index/mod.rs:157:1
|
157 | / impl PartialOrd for ContestedIndexFieldMatch {
158 | | fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
| | _____________________________________________________________-
159 | || use ContestedIndexFieldMatch::*;
160 | || match (self, other) {
161 | || // Comparing two integers
... ||
170 | || }
171 | || }
| ||_____- help: change this to: `{ Some(self.cmp(other)) }`
172 | | }
| |__^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl
= note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default
|
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/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
|
bound is defined in more than one place:
packages/wasm-dpp/src/utils.rs#L25
warning: bound is defined in more than one place
--> packages/wasm-dpp/src/utils.rs:25:24
|
25 | fn with_serde_into<D: DeserializeOwned>(&self) -> Result<D, JsValue>
| ^
26 | where
27 | D: for<'de> serde::de::Deserialize<'de> + 'static;
| ^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations
= note: `#[warn(clippy::multiple_bound_locations)]` on by default
|
methods `with_serde_to_platform_value_map` and `with_serde_into` are never used:
packages/wasm-dpp/src/utils.rs#L24
warning: methods `with_serde_to_platform_value_map` and `with_serde_into` are never used
--> packages/wasm-dpp/src/utils.rs:24:8
|
19 | pub trait ToSerdeJSONExt {
| -------------- methods in this trait
...
24 | fn with_serde_to_platform_value_map(&self) -> Result<BTreeMap<String, Value>, JsValue>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 | fn with_serde_into<D: DeserializeOwned>(&self) -> Result<D, JsValue>
| ^^^^^^^^^^^^^^^
|
methods `into_inner` and `inner_mut` are never used:
packages/wasm-dpp/src/utils.rs#L287
warning: methods `into_inner` and `inner_mut` are never used
--> packages/wasm-dpp/src/utils.rs:287:8
|
284 | pub(crate) trait Inner {
| ----- methods in this trait
...
287 | fn into_inner(self) -> Self::InnerItem;
| ^^^^^^^^^^
288 | fn inner(&self) -> &Self::InnerItem;
289 | fn inner_mut(&mut self) -> &mut Self::InnerItem;
| ^^^^^^^^^
|
field `0` is never read:
packages/wasm-dpp/src/identity/identity_facade.rs#L274
warning: field `0` is never read
--> packages/wasm-dpp/src/identity/identity_facade.rs:274:34
|
274 | pub struct NonConsensusErrorWasm(NonConsensusError);
| --------------------- ^^^^^^^^^^^^^^^^^
| |
| field in this struct
|
= help: consider removing this field
= note: `#[warn(dead_code)]` on by default
|
trait `AssetLockProofLike` is never used:
packages/wasm-dpp/src/identity/state_transition/asset_lock_proof/mod.rs#L48
warning: trait `AssetLockProofLike` is never used
--> packages/wasm-dpp/src/identity/state_transition/asset_lock_proof/mod.rs:48:11
|
48 | pub trait AssetLockProofLike {
| ^^^^^^^^^^^^^^^^^^
|
field `identity_id` is never read:
packages/wasm-dpp/src/identity/state_transition/identity_create_transition/to_object.rs#L21
warning: field `identity_id` is never read
--> packages/wasm-dpp/src/identity/state_transition/identity_create_transition/to_object.rs:21:9
|
19 | pub struct ToObject {
| -------- field in this struct
20 | pub transition_type: u8,
21 | pub identity_id: Identifier,
| ^^^^^^^^^^^
|
field `vote` is never read:
packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/to_object.rs#L21
warning: field `vote` is never read
--> packages/wasm-dpp/src/voting/state_transition/masternode_vote_transition/to_object.rs:21:9
|
18 | pub struct ToObject {
| -------- field in this struct
...
21 | pub vote: Vote,
| ^^^^
|
module has the same name as its containing module:
packages/wasm-dpp/src/data_contract_factory/mod.rs#L1
warning: module has the same name as its containing module
--> packages/wasm-dpp/src/data_contract_factory/mod.rs:1:1
|
1 | mod data_contract_factory;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception
= note: `#[warn(clippy::module_inception)]` on by default
|
very complex type used. Consider factoring parts into `type` definitions:
packages/wasm-dpp/src/document/factory.rs#L153
warning: very complex type used. Consider factoring parts into `type` definitions
--> packages/wasm-dpp/src/document/factory.rs:153:24
|
153 | let documents: Vec<(
| ________________________^
154 | | DocumentTransitionActionType,
155 | | Vec<(Document, DocumentTypeRef, Bytes32)>,
156 | | )> = documents_by_action
| |__________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
|
|
|
|
JS packages (@dashevo/wallet-lib) / Linting:
packages/wallet-lib/src/test/mocks/dashcore/block.js#L33
Unexpected console statement
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L8
Missing JSDoc @Property "network" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L38
Missing JSDoc @param "options" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L39
Missing JSDoc @param "createHistoricalSyncStream" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L40
Missing JSDoc @param "createContinuousSyncStream" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L63
Missing JSDoc @param "blockHeadersReader" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L71
Missing JSDoc @param "spvChain" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L107
Missing JSDoc @param "headers" description
|
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L108
Missing JSDoc @param "firstHeaderHeight" description
|
JS packages (@dashevo/dapi-client) / Linting:
packages/js-dapi-client/lib/BlockHeadersProvider/BlockHeadersProvider.js#L108
Missing JSDoc @param "firstHeaderHeight" type
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Client.ts#L10
Dependency cycle via ./Platform:1
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Client.ts#L166
Assignment to function parameter 'options'
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.ts#L143
Returning an awaited value that is not a promise is not allowed
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.spec.ts#L5
Using exported name 'Client' as identifier for default export
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts#L5
Dependency cycle via ./Platform:10
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts#L5
Using exported name 'Client' as identifier for default export
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts#L8
Dependency cycle detected
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts#L8
Using exported name 'createAssetLockTransaction' as identifier for default export
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts#L10
Dependency cycle detected
|
JS packages (dash) / Linting:
packages/js-dash-sdk/src/SDK/Client/Platform/Platform.ts#L11
Dependency cycle detected
|
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;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unnecessary parentheses around `if` condition:
packages/rs-drive-abci/src/abci/handler/finalize_block.rs#L105
warning: unnecessary parentheses around `if` condition
--> packages/rs-drive-abci/src/abci/handler/finalize_block.rs:105:8
|
105 | if (app.platform().config.state_sync_config.snapshots_enabled) {
| ^ ^
|
= note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
|
105 - if (app.platform().config.state_sync_config.snapshots_enabled) {
105 + if app.platform().config.state_sync_config.snapshots_enabled {
|
|
the `Err`-variant returned from this function is very large:
packages/rs-drive-abci/src/abci/handler/finalize_block.rs#L18
warning: the `Err`-variant returned from this function is very large
--> packages/rs-drive-abci/src/abci/handler/finalize_block.rs:18:6
|
18 | ) -> Result<proto::ResponseFinalizeBlock, 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
|
using `clone` on type `u64` which implements the `Copy` trait:
packages/rs-drive-abci/src/abci/handler/finalize_block.rs#L103
warning: using `clone` on type `u64` which implements the `Copy` trait
--> packages/rs-drive-abci/src/abci/handler/finalize_block.rs:103:16
|
103 | .store(block_height.clone(), Ordering::Relaxed);
| ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `block_height`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
= note: `#[warn(clippy::clone_on_copy)]` on by default
|
unused import: `crate::abci::handler::error::error_into_exception`:
packages/rs-drive-abci/src/abci/handler/list_snapshots.rs#L2
warning: unused import: `crate::abci::handler::error::error_into_exception`
--> packages/rs-drive-abci/src/abci/handler/list_snapshots.rs:2:5
|
2 | use crate::abci::handler::error::error_into_exception;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
the `Err`-variant returned from this function is very large:
packages/rs-drive-abci/src/abci/handler/list_snapshots.rs#L13
warning: the `Err`-variant returned from this function is very large
--> packages/rs-drive-abci/src/abci/handler/list_snapshots.rs:13:6
|
13 | ) -> Result<proto::ResponseListSnapshots, 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
|
deref which would be done by auto-deref:
packages/rs-drive-abci/src/abci/handler/list_snapshots.rs#L22
warning: deref which would be done by auto-deref
--> packages/rs-drive-abci/src/abci/handler/list_snapshots.rs:22:24
|
22 | .get_snapshots(&*app.platform().drive.grove)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&app.platform().drive.grove`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref
= note: `#[warn(clippy::explicit_auto_deref)]` on by default
|
redundant pattern matching, consider using `is_ok()`:
packages/rs-drive-abci/src/abci/handler/list_snapshots.rs#L40
warning: redundant pattern matching, consider using `is_ok()`
--> packages/rs-drive-abci/src/abci/handler/list_snapshots.rs:40:9
|
40 | / match GroveDb::open(&s.path) {
41 | | Ok(_) => true,
42 | | Err(_) => false,
43 | | }
| |_________^ help: try: `GroveDb::open(&s.path).is_ok()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching
= note: `#[warn(clippy::redundant_pattern_matching)]` on by default
|
JS code security audit / Run Code QL
CodeQL Action v2 will be deprecated on December 5th, 2024. Please update all occurrences of the CodeQL Action in your workflow files to v3. For more information, see https://github.blog/changelog/2024-01-12-code-scanning-deprecation-of-codeql-action-v2/
|
sccache stats
100% - 60 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
90% - 181 hits, 21 misses, 0 errors
|
sccache stats
69% - 165 hits, 73 misses, 0 errors
|
sccache stats
82% - 239 hits, 51 misses, 0 errors
|
sccache stats
74% - 158 hits, 55 misses, 0 errors
|
sccache stats
63% - 145 hits, 87 misses, 0 errors
|
sccache stats
81% - 377 hits, 89 misses, 0 errors
|
sccache stats
63% - 119 hits, 69 misses, 0 errors
|
sccache stats
61% - 354 hits, 230 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
50% - 218 hits, 216 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
78% - 349 hits, 99 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
92% - 211 hits, 19 misses, 0 errors
|
sccache stats
100% - 221 hits, 0 misses, 0 errors
|
sccache stats
100% - 60 hits, 0 misses, 0 errors
|
sccache stats
90% - 188 hits, 21 misses, 0 errors
|
sccache stats
95% - 209 hits, 10 misses, 0 errors
|
sccache stats
96% - 210 hits, 8 misses, 0 errors
|
sccache stats
50% - 109 hits, 110 misses, 0 errors
|
sccache stats
87% - 922 hits, 134 misses, 0 errors
|
sccache stats
90% - 829 hits, 89 misses, 0 errors
|
sccache stats
68% - 309 hits, 145 misses, 0 errors
|
sccache stats
58% - 239 hits, 171 misses, 0 errors
|
sccache stats
86% - 742 hits, 119 misses, 0 errors
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
dashpay~platform~JI40SH.dockerbuild
|
92.5 KB |
|
dashpay~platform~PX6CMX.dockerbuild
|
90.7 KB |
|
dashpay~platform~Z1ONEK.dockerbuild
|
84.1 KB |
|
js-build-77a8929fa346eac2ef1cd463888c0b5419cc23a0
Expired
|
17.5 MB |
|