Skip to content

Commit

Permalink
refactor: resolve clippy warnings in rs-dpp (#1754)
Browse files Browse the repository at this point in the history
  • Loading branch information
PastaPastaPasta authored Mar 8, 2024
1 parent 06fa6f5 commit 4129cf7
Show file tree
Hide file tree
Showing 64 changed files with 311 additions and 118 deletions.
1 change: 0 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion packages/rs-dpp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ authors = [
]

[dependencies]
tracing = "0.1.4"
anyhow = { version = "1.0.75" }
async-trait = { version = "0.1.68" }
base64 = "0.20.0"
Expand Down
1 change: 0 additions & 1 deletion packages/rs-dpp/src/data_contract/data_contract_facade.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ use crate::prelude::{Identifier, IdentityNonce};
use crate::state_transition::data_contract_create_transition::DataContractCreateTransition;
#[cfg(feature = "state-transitions")]
use crate::state_transition::data_contract_update_transition::DataContractUpdateTransition;
use crate::util::entropy_generator::EntropyGenerator;

use crate::ProtocolError;
use platform_value::Value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ mod test {
match result {
Err(crate::ProtocolError::ConsensusError(e)) => match e.deref() {
ConsensusError::BasicError(err) => match err {
BasicError::DataContractEmptySchemaError(e) => {}
BasicError::DataContractEmptySchemaError(_) => {}
_ => panic!("Expected DataContractEmptySchemaError"),
},
_ => panic!("Expected basic consensus error"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ impl DocumentTypeV0 {

#[cfg(not(feature = "validation"))]
if validate {
// TODO we are silently dropping this error when we shouldn't be
// but returning this error causes tests to fail; investigate more.
ProtocolError::CorruptedCodeExecution(
"validation is not enabled but is being called on try_from_schema_v0".to_string(),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,31 @@ pub trait DocumentGetRawForDocumentTypeV0: DocumentV0Getters {
// todo: maybe merge with document_type.serialize_value_for_key() because we use different
// code paths for query and index creation
// returns the owner id if the key path is $ownerId and an owner id is given
if key_path == "$ownerId" && owner_id.is_some() {
Ok(Some(Vec::from(owner_id.unwrap())))
} else {
match key_path {
// returns self.id or self.owner_id if key path is $id or $ownerId
"$id" => return Ok(Some(self.id().to_vec())),
"$ownerId" => return Ok(Some(self.owner_id().to_vec())),
"$createdAt" => {
return Ok(self
.created_at()
.map(|time| DocumentPropertyType::encode_date_timestamp(time).unwrap()))
}
"$updatedAt" => {
return Ok(self
.updated_at()
.map(|time| DocumentPropertyType::encode_date_timestamp(time).unwrap()))
}
_ => {}
if key_path == "$ownerId" {
if let Some(owner_id) = owner_id {
return Ok(Some(Vec::from(owner_id)));
}
self.properties()
.get_optional_at_path(key_path)?
.map(|value| {
document_type.serialize_value_for_key(key_path, value, platform_version)
})
.transpose()
}

match key_path {
// returns self.id or self.owner_id if key path is $id or $ownerId
"$id" => return Ok(Some(self.id().to_vec())),
"$ownerId" => return Ok(Some(self.owner_id().to_vec())),
"$createdAt" => {
return Ok(self
.created_at()
.map(|time| DocumentPropertyType::encode_date_timestamp(time).unwrap()))
}
"$updatedAt" => {
return Ok(self
.updated_at()
.map(|time| DocumentPropertyType::encode_date_timestamp(time).unwrap()))
}
_ => {}
}
self.properties()
.get_optional_at_path(key_path)?
.map(|value| document_type.serialize_value_for_key(key_path, value, platform_version))
.transpose()
}
}
4 changes: 2 additions & 2 deletions packages/rs-dpp/src/document/v0/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@ impl fmt::Display for DocumentV0 {
write!(f, "owner_id:{} ", self.owner_id)?;
if let Some(created_at) = self.created_at {
let naive = NaiveDateTime::from_timestamp_millis(created_at as i64).unwrap_or_default();
let datetime: DateTime<Utc> = DateTime::from_utc(naive, Utc);
let datetime: DateTime<Utc> = DateTime::from_naive_utc_and_offset(naive, Utc);
write!(f, "created_at:{} ", datetime.format("%Y-%m-%d %H:%M:%S"))?;
}
if let Some(updated_at) = self.updated_at {
let naive = NaiveDateTime::from_timestamp_millis(updated_at as i64).unwrap_or_default();
let datetime: DateTime<Utc> = DateTime::from_utc(naive, Utc);
let datetime: DateTime<Utc> = DateTime::from_naive_utc_and_offset(naive, Utc);
write!(f, "updated_at:{} ", datetime.format("%Y-%m-%d %H:%M:%S"))?;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use crate::consensus::state::state_error::StateError;
use crate::consensus::ConsensusError;
use crate::errors::ProtocolError;
use crate::ProtocolError; // needed for PlatformDeserialize and PlatformSerialize
use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
use std::fmt::{Display, Formatter};
use thiserror::Error;

use crate::prelude::{Identifier, IdentityNonce, Revision};
use crate::prelude::{Identifier, IdentityNonce};

use crate::identity::identity_nonce::MergeIdentityNonceResult;
use bincode::{Decode, Encode};
Expand Down
2 changes: 1 addition & 1 deletion packages/rs-dpp/src/identity/identity_facade.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use std::collections::BTreeMap;
use crate::identity::state_transition::asset_lock_proof::chain::ChainAssetLockProof;
use crate::identity::state_transition::asset_lock_proof::{AssetLockProof, InstantAssetLockProof};
use crate::identity::{Identity, IdentityPublicKey, KeyID, TimestampMillis};
use crate::prelude::{Identifier, IdentityNonce, Revision};
use crate::prelude::{Identifier, IdentityNonce};

use crate::identity::identity_factory::IdentityFactory;
#[cfg(feature = "state-transitions")]
Expand Down
19 changes: 10 additions & 9 deletions packages/rs-dpp/src/identity/identity_factory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ impl IdentityFactory {
let mut identity_topup_transition = IdentityTopUpTransitionV0::default();

identity_topup_transition.set_identity_id(identity_id);
identity_topup_transition.set_asset_lock_proof(asset_lock_proof);
identity_topup_transition.set_asset_lock_proof(asset_lock_proof)?;

Ok(IdentityTopUpTransition::V0(identity_topup_transition))
}
Expand Down Expand Up @@ -236,14 +236,15 @@ impl IdentityFactory {
output_script: CoreScript,
identity_nonce: IdentityNonce,
) -> Result<IdentityCreditWithdrawalTransition, ProtocolError> {
let mut identity_credit_withdrawal_transition =
IdentityCreditWithdrawalTransitionV0::default();
identity_credit_withdrawal_transition.identity_id = identity_id;
identity_credit_withdrawal_transition.amount = amount;
identity_credit_withdrawal_transition.core_fee_per_byte = core_fee_per_byte;
identity_credit_withdrawal_transition.pooling = pooling;
identity_credit_withdrawal_transition.output_script = output_script;
identity_credit_withdrawal_transition.nonce = identity_nonce;
let identity_credit_withdrawal_transition = IdentityCreditWithdrawalTransitionV0 {
identity_id,
amount,
core_fee_per_byte,
pooling,
output_script,
nonce: identity_nonce,
..Default::default()
};

Ok(IdentityCreditWithdrawalTransition::from(
identity_credit_withdrawal_transition,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
mod v0;

#[allow(unused_imports)] // Removing causes build failures; yet clippy insists it's unused
pub(in crate::identity::state_transition::asset_lock_proof::instant) use v0::validate_instant_asset_lock_proof_structure_v0;
9 changes: 8 additions & 1 deletion packages/rs-dpp/src/serialization/serialization_traits.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
#[cfg(any(
feature = "message-signature-verification",
feature = "message-signing"
))]
use crate::identity::KeyType;

use serde::{Deserialize, Serialize};

#[cfg(feature = "message-signature-verification")]
use crate::validation::SimpleConsensusValidationResult;
use crate::version::PlatformVersion;
use crate::{BlsModule, ProtocolError};
#[cfg(feature = "message-signing")]
use crate::BlsModule;
use crate::ProtocolError;
use platform_value::Value;

pub trait Signable {
Expand Down
2 changes: 1 addition & 1 deletion packages/rs-dpp/src/signing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ impl PlatformMessageSignable for &[u8] {
KeyType::BIP13_SCRIPT_HASH | KeyType::EDDSA_25519_HASH160 => {
Err(ProtocolError::InvalidSigningKeyTypeError(format!(
"key type {} can not sign",
key_type.to_string()
key_type
)))
}
}
Expand Down
62 changes: 38 additions & 24 deletions packages/rs-dpp/src/state_transition/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,30 @@ mod traits;

// pub mod state_transition_fee;

pub use traits::*;

#[cfg(feature = "state-transition-signing")]
use crate::consensus::signature::InvalidSignaturePublicKeySecurityLevelError;
#[cfg(feature = "state-transition-validation")]
use crate::consensus::signature::{
InvalidSignaturePublicKeySecurityLevelError, InvalidStateTransitionSignatureError,
PublicKeyIsDisabledError, SignatureError,
InvalidStateTransitionSignatureError, PublicKeyIsDisabledError, SignatureError,
};
#[cfg(feature = "state-transition-validation")]
use crate::consensus::ConsensusError;
pub use traits::*;

#[cfg(any(
feature = "state-transition-signing",
feature = "state-transition-validation"
))]
use crate::identity::identity_public_key::accessors::v0::IdentityPublicKeyGettersV0;
#[cfg(feature = "state-transition-signing")]
use crate::identity::signer::Signer;
use crate::identity::state_transition::OptionallyAssetLockProved;
use crate::identity::{IdentityPublicKey, KeyID, KeyType, Purpose, SecurityLevel};
#[cfg(any(
feature = "state-transition-signing",
feature = "state-transition-validation"
))]
use crate::identity::{IdentityPublicKey, KeyType, Purpose};

Check warning on line 64 in packages/rs-dpp/src/state_transition/mod.rs

View workflow job for this annotation

GitHub Actions / Rust packages (drive-abci) / Linting

unused import: `Purpose`

warning: unused import: `Purpose` --> packages/rs-dpp/src/state_transition/mod.rs:64:51 | 64 | use crate::identity::{IdentityPublicKey, KeyType, Purpose}; | ^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
use crate::identity::{KeyID, SecurityLevel};
use crate::prelude::AssetLockProof;
pub use state_transitions::*;

Expand Down Expand Up @@ -89,6 +101,7 @@ use crate::state_transition::identity_topup_transition::{
use crate::state_transition::identity_update_transition::{
IdentityUpdateTransition, IdentityUpdateTransitionSignable,
};
#[cfg(feature = "state-transition-signing")]
use crate::state_transition::state_transitions::document::documents_batch_transition::methods::v0::DocumentsBatchTransitionMethodsV0;

pub type GetDataContractSecurityLevelRequirementFn =
Expand Down Expand Up @@ -175,6 +188,7 @@ macro_rules! call_method_identity_signed {
};
}

#[cfg(feature = "state-transition-signing")]
macro_rules! call_errorable_method_identity_signed {
($state_transition:expr, $method:ident, $args:tt ) => {
match $state_transition {
Expand Down Expand Up @@ -209,25 +223,25 @@ macro_rules! call_errorable_method_identity_signed {
}
};
}

macro_rules! call_static_method {
($state_transition:expr, $method:ident ) => {
match $state_transition {
StateTransition::DataContractCreate(_) => DataContractCreateTransition::$method(),
StateTransition::DataContractUpdate(_) => DataContractUpdateTransition::$method(),
StateTransition::DocumentsBatch(_) => DocumentsBatchTransition::$method(),
StateTransition::IdentityCreate(_) => IdentityCreateTransition::$method(),
StateTransition::IdentityTopUp(_) => IdentityTopUpTransition::$method(),
StateTransition::IdentityCreditWithdrawal(_) => {
IdentityCreditWithdrawalTransition::$method()
}
StateTransition::IdentityUpdate(_) => IdentityUpdateTransition::$method(),
StateTransition::IdentityCreditTransfer(_) => {
IdentityCreditTransferTransition::$method()
}
}
};
}
// TODO unused macros below
// macro_rules! call_static_method {
// ($state_transition:expr, $method:ident ) => {
// match $state_transition {
// StateTransition::DataContractCreate(_) => DataContractCreateTransition::$method(),
// StateTransition::DataContractUpdate(_) => DataContractUpdateTransition::$method(),
// StateTransition::DocumentsBatch(_) => DocumentsBatchTransition::$method(),
// StateTransition::IdentityCreate(_) => IdentityCreateTransition::$method(),
// StateTransition::IdentityTopUp(_) => IdentityTopUpTransition::$method(),
// StateTransition::IdentityCreditWithdrawal(_) => {
// IdentityCreditWithdrawalTransition::$method()
// }
// StateTransition::IdentityUpdate(_) => IdentityUpdateTransition::$method(),
// StateTransition::IdentityCreditTransfer(_) => {
// IdentityCreditTransferTransition::$method()
// }
// }
// };
// }

#[derive(
Debug,
Expand Down
2 changes: 1 addition & 1 deletion packages/rs-dpp/src/state_transition/serialization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ mod tests {
let platform_version = PlatformVersion::latest();
let identity = Identity::random_identity(5, Some(5), platform_version)
.expect("expected a random identity");
let mut created_data_contract =
let created_data_contract =
get_data_contract_fixture(Some(identity.id()), 0, platform_version.protocol_version);
let data_contract_update_transition =
DataContractUpdateTransition::V0(DataContractUpdateTransitionV0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ use crate::state_transition::state_transitions;
pub use state_transitions::common_fields::property_names::{
IDENTITY_NONCE, SIGNATURE, SIGNATURE_PUBLIC_KEY_ID, STATE_TRANSITION_PROTOCOL_VERSION,
};
#[allow(unused_imports)] // Removing causes build failures; yet clippy insists it's unused
pub use state_transitions::contract::common_fields::property_names::DATA_CONTRACT;
pub use state_transitions::contract::common_fields::property_names::{
DATA_CONTRACT, DATA_CONTRACT_ID, DATA_CONTRACT_OWNER_ID, DATA_CONTRACT_PROTOCOL_VERSION,
DATA_CONTRACT_ID, DATA_CONTRACT_OWNER_ID, DATA_CONTRACT_PROTOCOL_VERSION,
};

pub const IDENTIFIER_FIELDS: [&str; 2] = [DATA_CONTRACT_ID, DATA_CONTRACT_OWNER_ID];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ mod test {

use crate::prelude::IdentityNonce;
use dpp::util::json_value::JsonValueExt;
use platform_value::Bytes32;

#[test]
fn should_return_state_transition_in_json_format() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ use serde::{Deserialize, Serialize};
#[cfg(feature = "state-transition-json-conversion")]
use serde_json::Value as JsonValue;

#[cfg(feature = "state-transition-value-conversion")]
use crate::data_contract::accessors::v0::DataContractV0Getters;
use crate::identifier::Identifier;
use crate::prelude::IdentityNonce;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,17 @@ use crate::data_contract::document_type::accessors::DocumentTypeV0Getters;
use crate::prelude::DataContract;
#[cfg(feature = "state-transition-json-conversion")]
use crate::state_transition::data_contract_update_transition::IDENTIFIER_FIELDS;
#[cfg(any(
feature = "state-transition-json-conversion",
feature = "state-transition-value-conversion"
))]
use crate::state_transition::documents_batch_transition::document_base_transition::v0::DocumentTransitionObjectLike;
#[cfg(feature = "state-transition-json-conversion")]
use crate::state_transition::documents_batch_transition::document_create_transition::v0::BINARY_FIELDS;
#[cfg(any(
feature = "state-transition-json-conversion",
feature = "state-transition-value-conversion"
))]
use crate::state_transition::documents_batch_transition::document_create_transition::DocumentCreateTransition;
#[cfg(feature = "state-transition-value-conversion")]
use crate::state_transition::documents_batch_transition::document_create_transition::DocumentCreateTransitionV0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ use bincode::{Decode, Encode};
use derive_more::{Display, From};
use platform_value::Identifier;
use platform_version::version::PlatformVersion;
#[cfg(feature = "state-transition-serde-conversion")]
use serde::{Deserialize, Serialize};
pub use v0::DocumentCreateTransitionV0;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ pub mod v0_methods;

use bincode::{Decode, Encode};

#[cfg(feature = "state-transition-value-conversion")]
use platform_value::btreemap_extensions::BTreeValueRemoveFromMapHelper;
use platform_value::{Identifier, Value};
#[cfg(feature = "state-transition-serde-conversion")]
use serde::{Deserialize, Serialize};

use std::collections::BTreeMap;
Expand All @@ -18,9 +20,9 @@ use crate::{data_contract::DataContract, errors::ProtocolError};
use crate::data_contract::accessors::v0::DataContractV0Getters;
use crate::data_contract::document_type::methods::DocumentTypeV0Methods;
use crate::document::{Document, DocumentV0};
use crate::state_transition::documents_batch_transition::document_base_transition::v0::{
DocumentBaseTransitionV0, DocumentTransitionObjectLike,
};
use crate::state_transition::documents_batch_transition::document_base_transition::v0::DocumentBaseTransitionV0;
#[cfg(feature = "state-transition-value-conversion")]
use crate::state_transition::documents_batch_transition::document_base_transition::v0::DocumentTransitionObjectLike;
use crate::state_transition::documents_batch_transition::document_base_transition::DocumentBaseTransition;
use derive_more::Display;
use platform_version::version::PlatformVersion;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ mod v0_methods;

use bincode::{Decode, Encode};
use derive_more::{Display, From};
#[cfg(feature = "state-transition-serde-conversion")]
use serde::{Deserialize, Serialize};
pub use v0::*;

Expand Down
Loading

0 comments on commit 4129cf7

Please sign in to comment.