diff --git a/base_layer/common_types/src/types/bullet_rangeproofs.rs b/base_layer/common_types/src/types/bullet_rangeproofs.rs index 7306878791..571717fb89 100644 --- a/base_layer/common_types/src/types/bullet_rangeproofs.rs +++ b/base_layer/common_types/src/types/bullet_rangeproofs.rs @@ -22,7 +22,6 @@ use std::fmt; -use digest::Digest; use serde::{ de::{self, Visitor}, Deserialize, @@ -32,14 +31,18 @@ use serde::{ }; use tari_utilities::{hex::*, ByteArray, ByteArrayError, Hashable}; -use crate::types::Blake256; +use super::BulletRangeProofHasherBlake256; #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct BulletRangeProof(pub Vec); /// Implement the hashing function for RangeProof for use in the MMR impl Hashable for BulletRangeProof { fn hash(&self) -> Vec { - Blake256::new().chain(&self.0).finalize().to_vec() + BulletRangeProofHasherBlake256::new() + .chain(&self.0) + .finalize() + .as_ref() + .to_vec() } } diff --git a/base_layer/common_types/src/types/mod.rs b/base_layer/common_types/src/types/mod.rs index dd20bd9f73..e265f21844 100644 --- a/base_layer/common_types/src/types/mod.rs +++ b/base_layer/common_types/src/types/mod.rs @@ -78,3 +78,12 @@ pub type RangeProofService = BulletproofsPlusService; /// Specify the range proof pub type RangeProof = BulletRangeProof; + +use tari_crypto::{hash_domain, hashing::DomainSeparatedHasher}; + +hash_domain!( + BulletRangeProofHashDomain, + "com.tari.tari-project.base_layer.common_types.bullet_rangeproofs" +); + +pub type BulletRangeProofHasherBlake256 = DomainSeparatedHasher; diff --git a/base_layer/core/src/chain_storage/lmdb_db/mod.rs b/base_layer/core/src/chain_storage/lmdb_db/mod.rs index b74b5d76a7..e462684b17 100644 --- a/base_layer/core/src/chain_storage/lmdb_db/mod.rs +++ b/base_layer/core/src/chain_storage/lmdb_db/mod.rs @@ -23,6 +23,7 @@ pub use lmdb_db::{create_lmdb_database, create_recovery_lmdb_database, LMDBDatabase}; use serde::{Deserialize, Serialize}; use tari_common_types::types::HashOutput; +use tari_crypto::hash_domain; use crate::transactions::transaction_components::{TransactionInput, TransactionKernel, TransactionOutput}; @@ -71,3 +72,9 @@ pub(crate) struct TransactionKernelRowData { pub mmr_position: u32, pub hash: HashOutput, } + +hash_domain!( + CoreChainStorageHashDomain, + "com.tari.tari-project.base_layer.core.lmdb_db", + 1 +); diff --git a/base_layer/core/src/covenants/fields.rs b/base_layer/core/src/covenants/fields.rs index 3df4eea660..087d948c66 100644 --- a/base_layer/core/src/covenants/fields.rs +++ b/base_layer/core/src/covenants/fields.rs @@ -29,8 +29,9 @@ use std::{ use digest::Digest; use integer_encoding::VarIntWriter; -use tari_crypto::hash::blake2::Blake256; +use tari_crypto::{hash::blake2::Blake256, hashing::DomainSeparation}; +use super::{BaseLayerCovenantsDomain, COVENANTS_FIELD_HASHER_LABEL}; use crate::{ consensus::ToConsensusBytes, covenants::{ @@ -307,8 +308,9 @@ impl OutputFields { pub fn construct_challenge_from(&self, output: &TransactionOutput) -> Blake256 { let mut challenge = Blake256::new(); + BaseLayerCovenantsDomain::add_domain_separation_tag(&mut challenge, COVENANTS_FIELD_HASHER_LABEL); for field in &self.fields { - challenge.update(field.get_field_value_bytes(output)); + challenge.update(&field.get_field_value_bytes(output).as_slice()); } challenge } @@ -338,7 +340,6 @@ mod test { use super::*; use crate::{ - consensus::ConsensusEncoding, covenant, covenants::test::{create_input, create_outputs}, transactions::{ @@ -487,6 +488,9 @@ mod test { use super::*; mod construct_challenge_from { + use blake2::Digest; + use tari_crypto::hashing::DomainSeparation; + use super::*; #[test] @@ -508,12 +512,16 @@ mod test { fields.push(OutputField::Commitment); fields.push(OutputField::Script); let hash = fields.construct_challenge_from(&output).finalize(); - - let mut challenge = Vec::new(); - output.features.consensus_encode(&mut challenge).unwrap(); - output.commitment.consensus_encode(&mut challenge).unwrap(); - output.script.consensus_encode(&mut challenge).unwrap(); - let expected_hash = Blake256::new().chain(&challenge).finalize(); + let hash = hash.to_vec(); + + let mut hasher = Blake256::new(); + BaseLayerCovenantsDomain::add_domain_separation_tag(&mut hasher, COVENANTS_FIELD_HASHER_LABEL); + let expected_hash = hasher + .chain(output.features.to_consensus_bytes()) + .chain(output.commitment.to_consensus_bytes()) + .chain(output.script.to_consensus_bytes()) + .finalize() + .to_vec(); assert_eq!(hash, expected_hash); } } diff --git a/base_layer/core/src/covenants/filters/fields_hashed_eq.rs b/base_layer/core/src/covenants/filters/fields_hashed_eq.rs index 32a6922de3..1eaf6e9dc5 100644 --- a/base_layer/core/src/covenants/filters/fields_hashed_eq.rs +++ b/base_layer/core/src/covenants/filters/fields_hashed_eq.rs @@ -23,7 +23,6 @@ use digest::Digest; use crate::covenants::{context::CovenantContext, error::CovenantError, filters::Filter, output_set::OutputSet}; - #[derive(Debug, Clone, PartialEq, Eq)] pub struct FieldsHashedEqFilter; @@ -32,8 +31,8 @@ impl Filter for FieldsHashedEqFilter { let fields = context.next_arg()?.require_outputfields()?; let hash = context.next_arg()?.require_hash()?; output_set.retain(|output| { - let challenge = fields.construct_challenge_from(output); - Ok(challenge.finalize()[..] == *hash) + let challenge = fields.construct_challenge_from(output).finalize(); + Ok(challenge[..] == *hash) })?; Ok(()) } @@ -42,12 +41,18 @@ impl Filter for FieldsHashedEqFilter { #[cfg(test)] mod test { use tari_common_types::types::Challenge; + use tari_crypto::hashing::DomainSeparation; use super::*; use crate::{ consensus::ToConsensusBytes, covenant, - covenants::{filters::test::setup_filter_test, test::create_input}, + covenants::{ + filters::test::setup_filter_test, + test::create_input, + BaseLayerCovenantsDomain, + COVENANTS_FIELD_HASHER_LABEL, + }, transactions::transaction_components::{OutputFeatures, SideChainFeatures}, }; @@ -58,9 +63,9 @@ mod test { sidechain_features: Some(Box::new(SideChainFeatures {})), ..Default::default() }; - let hashed = Challenge::new().chain(features.to_consensus_bytes()).finalize(); - let mut hash = [0u8; 32]; - hash.copy_from_slice(hashed.as_slice()); + let mut hasher = Challenge::new(); + BaseLayerCovenantsDomain::add_domain_separation_tag(&mut hasher, COVENANTS_FIELD_HASHER_LABEL); + let hash = hasher.chain(&features.to_consensus_bytes()).finalize(); let covenant = covenant!(fields_hashed_eq(@fields(@field::features), @hash(hash.into()))); let input = create_input(); let (mut context, outputs) = setup_filter_test(&covenant, &input, 0, |outputs| { diff --git a/base_layer/core/src/covenants/mod.rs b/base_layer/core/src/covenants/mod.rs index 74cf99b0af..1d75725495 100644 --- a/base_layer/core/src/covenants/mod.rs +++ b/base_layer/core/src/covenants/mod.rs @@ -51,3 +51,13 @@ mod macros; #[cfg(test)] mod test; + +use tari_crypto::hash_domain; + +hash_domain!( + BaseLayerCovenantsDomain, + "com.tari.tari-project.base_layer.covenants", + 1 +); + +pub(crate) const COVENANTS_FIELD_HASHER_LABEL: &str = "fields"; diff --git a/base_layer/core/src/mempool/unconfirmed_pool/mod.rs b/base_layer/core/src/mempool/unconfirmed_pool/mod.rs index 3ce8d80931..d78780dc01 100644 --- a/base_layer/core/src/mempool/unconfirmed_pool/mod.rs +++ b/base_layer/core/src/mempool/unconfirmed_pool/mod.rs @@ -26,4 +26,11 @@ mod unconfirmed_pool; // Public re-exports pub use error::UnconfirmedPoolError; +use tari_crypto::hash_domain; pub use unconfirmed_pool::{UnconfirmedPool, UnconfirmedPoolConfig}; + +hash_domain!( + UnconfirmedPoolOutputTokenIdHashDomain, + "com.tari.tari-project.base_layer.core.mempool.unconfirmed_pool_output_token_id", + 1 +); diff --git a/base_layer/core/src/mempool/unconfirmed_pool/unconfirmed_pool.rs b/base_layer/core/src/mempool/unconfirmed_pool/unconfirmed_pool.rs index 99bccae8e1..d2a8cf1e3f 100644 --- a/base_layer/core/src/mempool/unconfirmed_pool/unconfirmed_pool.rs +++ b/base_layer/core/src/mempool/unconfirmed_pool/unconfirmed_pool.rs @@ -40,7 +40,6 @@ use crate::{ }, transactions::{tari_amount::MicroTari, transaction_components::Transaction, weight::TransactionWeight}, }; - pub const LOG_TARGET: &str = "c::mp::unconfirmed_pool::unconfirmed_pool_storage"; type TransactionKey = usize; @@ -619,7 +618,6 @@ impl UnconfirmedPool { #[cfg(test)] mod test { use tari_common::configuration::Network; - use tari_crypto::hash::blake2::Blake256; use super::*; use crate::{ @@ -734,7 +732,7 @@ mod test { .unwrap(); let factories = CryptoFactories::default(); - let mut stx_protocol = stx_builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stx_protocol = stx_builder.build(&factories, None, u64::MAX).unwrap(); stx_protocol.finalize(&factories, None, u64::MAX).unwrap(); let tx3 = stx_protocol.get_transaction().unwrap().clone(); diff --git a/base_layer/core/src/transactions/test_helpers.rs b/base_layer/core/src/transactions/test_helpers.rs index 66fdbf5fb1..4f6978b6e6 100644 --- a/base_layer/core/src/transactions/test_helpers.rs +++ b/base_layer/core/src/transactions/test_helpers.rs @@ -27,7 +27,6 @@ use tari_common::configuration::Network; use tari_common_types::types::{Commitment, CommitmentFactory, PrivateKey, PublicKey, Signature}; use tari_crypto::{ commitment::HomomorphicCommitmentFactory, - hash::blake2::Blake256, keys::{PublicKey as PK, SecretKey}, range_proof::RangeProofService, }; @@ -613,7 +612,7 @@ pub fn create_sender_transaction_protocol_with( stx_builder.with_output(utxo, script_offset_pvt_key).unwrap(); }); - let mut stx_protocol = stx_builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stx_protocol = stx_builder.build(&factories, None, u64::MAX).unwrap(); stx_protocol.finalize(&factories, None, u64::MAX)?; Ok(stx_protocol) @@ -704,7 +703,7 @@ pub fn create_stx_protocol(schema: TransactionSchema) -> (SenderTransactionProto .unwrap(); } - let stx_protocol = stx_builder.build::(&factories, None, u64::MAX).unwrap(); + let stx_protocol = stx_builder.build(&factories, None, u64::MAX).unwrap(); let change = stx_protocol.get_change_amount().unwrap(); // The change output is assigned its own random script offset private key let change_sender_offset_public_key = stx_protocol.get_change_sender_offset_public_key().unwrap().unwrap(); diff --git a/base_layer/core/src/transactions/transaction_components/side_chain/mod.rs b/base_layer/core/src/transactions/transaction_components/side_chain/mod.rs index fa916756a0..8e01b54c7e 100644 --- a/base_layer/core/src/transactions/transaction_components/side_chain/mod.rs +++ b/base_layer/core/src/transactions/transaction_components/side_chain/mod.rs @@ -29,3 +29,21 @@ pub type FixedString = [u8; FIXED_STR_LEN]; pub fn bytes_into_fixed_string>(value: T) -> FixedString { tari_common_types::array::copy_into_fixed_array_lossy::<_, FIXED_STR_LEN>(value.as_ref()) } + +use tari_crypto::{hash::blake2::Blake256, hash_domain, hashing::DomainSeparatedHasher}; + +hash_domain!( + ContractAcceptanceHashDomain, + "com.tari.tari-project.base_layer.core.transactions.side_chain.contract_acceptance_challenge", + 1 +); + +pub type ContractAcceptanceHasherBlake256 = DomainSeparatedHasher; + +hash_domain!( + SignerSignatureHashDomain, + "com.tari.tari-project.base_layer.core.transactions.side_chain.signer_signature", + 1 +); + +pub type SignerSignatureHasherBlake256 = DomainSeparatedHasher; diff --git a/base_layer/core/src/transactions/transaction_components/test.rs b/base_layer/core/src/transactions/transaction_components/test.rs index 155420aa4a..1ee67ed725 100644 --- a/base_layer/core/src/transactions/transaction_components/test.rs +++ b/base_layer/core/src/transactions/transaction_components/test.rs @@ -20,10 +20,8 @@ // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE // USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -use digest::Digest; use rand::{self, rngs::OsRng}; use tari_common_types::types::{BlindingFactor, ComSignature, CommitmentFactory, PrivateKey, PublicKey, Signature}; -use tari_comms::types::CommsChallenge; use tari_crypto::{ commitment::HomomorphicCommitmentFactory, errors::RangeProofError, @@ -539,8 +537,15 @@ mod output_features { mod validate_internal_consistency { + use digest::Digest; + use tari_common_types::types::FixedHash; + use tari_crypto::{hash::blake2::Blake256, hashing::DomainSeparation}; + use super::*; - use crate::consensus::ToConsensusBytes; + use crate::{ + consensus::ToConsensusBytes, + covenants::{BaseLayerCovenantsDomain, COVENANTS_FIELD_HASHER_LABEL}, + }; fn test_case( input_params: &UtxoTestParams, @@ -589,9 +594,16 @@ mod validate_internal_consistency { .unwrap(); //---------------------------------- Case2 - PASS --------------------------------------------// - let hash = CommsChallenge::new().chain(features.to_consensus_bytes()).finalize(); + let mut hasher = Blake256::new(); + BaseLayerCovenantsDomain::add_domain_separation_tag(&mut hasher, COVENANTS_FIELD_HASHER_LABEL); + + let hash = hasher.chain(features.to_consensus_bytes()).finalize().to_vec(); + + let mut slice = [0u8; FixedHash::byte_size()]; + slice.copy_from_slice(hash.as_ref()); + let hash = FixedHash::from(slice); - let covenant = covenant!(fields_hashed_eq(@fields(@field::features), @hash(hash.into()))); + let covenant = covenant!(fields_hashed_eq(@fields(@field::features), @hash(hash))); test_case( &UtxoTestParams { diff --git a/base_layer/core/src/transactions/transaction_protocol/mod.rs b/base_layer/core/src/transactions/transaction_protocol/mod.rs index 1df53f532d..4ef2e90871 100644 --- a/base_layer/core/src/transactions/transaction_protocol/mod.rs +++ b/base_layer/core/src/transactions/transaction_protocol/mod.rs @@ -88,7 +88,7 @@ use derivative::Derivative; use serde::{Deserialize, Serialize}; use tari_common_types::types::PrivateKey; -use tari_crypto::{errors::RangeProofError, signatures::SchnorrSignatureError}; +use tari_crypto::{errors::RangeProofError, hash::blake2::Blake256, signatures::SchnorrSignatureError}; use thiserror::Error; use crate::transactions::{tari_amount::*, transaction_components::TransactionError}; @@ -99,6 +99,7 @@ pub mod sender; pub mod single_receiver; pub mod transaction_initializer; use tari_common_types::types::Commitment; +use tari_crypto::{hash_domain, hashing::DomainSeparatedHasher}; use crate::transactions::transaction_components::KernelFeatures; @@ -176,3 +177,13 @@ pub struct RewindData { pub rewind_blinding_key: PrivateKey, pub encryption_key: PrivateKey, } + +// hash domain +hash_domain!( + CalculateTxIdTransactionProtocolHashDomain, + "com.tari.tari-project.base_layer.core.transactions.transaction_protocol.calculate_tx_id", + 1 +); + +pub type CalculateTxIdTransactionProtocolHasherBlake256 = + DomainSeparatedHasher; diff --git a/base_layer/core/src/transactions/transaction_protocol/sender.rs b/base_layer/core/src/transactions/transaction_protocol/sender.rs index 60142f0b10..2aae5728cb 100644 --- a/base_layer/core/src/transactions/transaction_protocol/sender.rs +++ b/base_layer/core/src/transactions/transaction_protocol/sender.rs @@ -23,7 +23,6 @@ use std::fmt; use derivative::Derivative; -use digest::Digest; use serde::{Deserialize, Serialize}; use tari_common_types::{ transaction::TxId, @@ -45,6 +44,7 @@ use tari_crypto::{ }; use tari_script::TariScript; +use super::CalculateTxIdTransactionProtocolHasherBlake256; use crate::{ consensus::ConsensusConstants, covenants::Covenant, @@ -701,13 +701,13 @@ impl fmt::Display for SenderTransactionProtocol { } } -pub fn calculate_tx_id(pub_nonce: &PublicKey, index: usize) -> TxId { - let hash = D::new() +pub fn calculate_tx_id(pub_nonce: &PublicKey, index: usize) -> TxId { + let hash = CalculateTxIdTransactionProtocolHasherBlake256::new() .chain(pub_nonce.as_bytes()) .chain(index.to_le_bytes()) .finalize(); let mut bytes: [u8; 8] = [0u8; 8]; - bytes.copy_from_slice(&hash[..8]); + bytes.copy_from_slice(&hash.as_ref()[..8]); u64::from_le_bytes(bytes).into() } @@ -797,7 +797,6 @@ mod test { use tari_crypto::{ commitment::HomomorphicCommitmentFactory, errors::RangeProofError::ProofConstructionError, - hash::blake2::Blake256, keys::{PublicKey as PublicKeyTrait, SecretKey as SecretKeyTrait}, range_proof::RangeProofService, tari_utilities::{hex::Hex, ByteArray}, @@ -986,7 +985,7 @@ mod test { p2.sender_offset_private_key.clone(), ) .unwrap(); - let mut sender = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut sender = builder.build(&factories, None, u64::MAX).unwrap(); assert!(!sender.is_failed()); assert!(sender.is_finalizing()); match sender.finalize(&factories, None, u64::MAX) { @@ -1019,7 +1018,7 @@ mod test { .with_change_script(script, ExecutionStack::default(), PrivateKey::default()) // A little twist: Check the case where the change is less than the cost of another output .with_amount(0, MicroTari(1200) - fee - MicroTari(10)); - let mut alice = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut alice = builder.build(&factories, None, u64::MAX).unwrap(); assert!(alice.is_single_round_message_ready()); let msg = alice.build_single_round_message().unwrap(); // Send message down the wire....and wait for response @@ -1087,7 +1086,7 @@ mod test { ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()) .with_amount(0, MicroTari(5000)); - let mut alice = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut alice = builder.build(&factories, None, u64::MAX).unwrap(); assert!(alice.is_single_round_message_ready()); let msg = alice.build_single_round_message().unwrap(); println!( @@ -1167,7 +1166,7 @@ mod test { ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()) .with_amount(0, (2u64.pow(32) + 1).into()); - let mut alice = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut alice = builder.build(&factories, None, u64::MAX).unwrap(); assert!(alice.is_single_round_message_ready()); let msg = alice.build_single_round_message().unwrap(); // Send message down the wire....and wait for response @@ -1214,7 +1213,7 @@ mod test { ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); // Verify that the initial 'fee greater than amount' check rejects the transaction when it is constructed - match builder.build::(&factories, None, u64::MAX) { + match builder.build(&factories, None, u64::MAX) { Ok(_) => panic!("'BuildError(\"Fee is greater than amount\")' not caught"), Err(e) => assert_eq!(e.message, "Fee is greater than amount".to_string()), }; @@ -1249,7 +1248,7 @@ mod test { ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); // Test if the transaction passes the initial 'fee greater than amount' check when it is constructed - match builder.build::(&factories, None, u64::MAX) { + match builder.build(&factories, None, u64::MAX) { Ok(_) => {}, Err(e) => panic!("Unexpected error: {:?}", e), }; @@ -1287,7 +1286,7 @@ mod test { MicroTari::zero(), ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); - let mut alice = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut alice = builder.build(&factories, None, u64::MAX).unwrap(); assert!(alice.is_single_round_message_ready()); let msg = alice.build_single_round_message().unwrap(); diff --git a/base_layer/core/src/transactions/transaction_protocol/transaction_initializer.rs b/base_layer/core/src/transactions/transaction_protocol/transaction_initializer.rs index 515cc64a2b..72fdd0a4c4 100644 --- a/base_layer/core/src/transactions/transaction_protocol/transaction_initializer.rs +++ b/base_layer/core/src/transactions/transaction_protocol/transaction_initializer.rs @@ -25,7 +25,6 @@ use std::{ fmt::{Debug, Error, Formatter}, }; -use digest::Digest; use log::*; use rand::rngs::OsRng; use tari_common_types::{ @@ -487,7 +486,7 @@ impl SenderTransactionInitializer { /// If all the input data is present, but one or more fields are invalid, the function will return a /// `SenderTransactionProtocol` instance in the Failed state. #[allow(clippy::too_many_lines)] - pub fn build( + pub fn build( mut self, factories: &CryptoFactories, prev_header: Option, @@ -631,7 +630,7 @@ impl SenderTransactionInitializer { let tx_id = match self.tx_id { Some(id) => id, - None => calculate_tx_id::(&public_nonce, 0), + None => calculate_tx_id(&public_nonce, 0), }; let recipient_output_features = self.recipient_output_features.clone().into_vec(); @@ -708,7 +707,7 @@ impl SenderTransactionInitializer { mod test { use rand::rngs::OsRng; use tari_common_types::types::PrivateKey; - use tari_crypto::{hash::blake2::Blake256, keys::SecretKey}; + use tari_crypto::keys::SecretKey; use tari_script::{script, ExecutionStack, TariScript}; use crate::{ @@ -736,7 +735,7 @@ mod test { let p = TestParams::new(); // Start the builder let builder = SenderTransactionInitializer::new(0, &create_consensus_constants(0)); - let err = builder.build::(&factories, None, u64::MAX).unwrap_err(); + let err = builder.build(&factories, None, u64::MAX).unwrap_err(); let script = script!(Nop); // We should have a bunch of fields missing still, but we can recover and continue assert_eq!( @@ -777,12 +776,12 @@ mod test { .fee() .calculate(MicroTari(20), 1, 1, 2, p.get_size_for_default_metadata(2)); // We needed a change input, so this should fail - let err = builder.build::(&factories, None, u64::MAX).unwrap_err(); + let err = builder.build(&factories, None, u64::MAX).unwrap_err(); assert_eq!(err.message, "Change spending key was not provided"); // Ok, give them a change output let mut builder = err.builder; builder.with_change_secret(p.change_spend_key); - let result = builder.build::(&factories, None, u64::MAX).unwrap(); + let result = builder.build(&factories, None, u64::MAX).unwrap(); // Peek inside and check the results if let SenderState::Finalizing(info) = result.into_state() { assert_eq!(info.num_recipients, 0, "Number of receivers"); @@ -830,7 +829,7 @@ mod test { .with_input(utxo, input) .with_fee_per_gram(MicroTari(4)) .with_prevent_fee_gt_amount(false); - let result = builder.build::(&factories, None, u64::MAX).unwrap(); + let result = builder.build(&factories, None, u64::MAX).unwrap(); // Peek inside and check the results if let SenderState::Finalizing(info) = result.into_state() { assert_eq!(info.num_recipients, 0, "Number of receivers"); @@ -881,7 +880,7 @@ mod test { .with_input(utxo, input) .with_fee_per_gram(MicroTari(1)) .with_prevent_fee_gt_amount(false); - let result = builder.build::(&factories, None, u64::MAX).unwrap(); + let result = builder.build(&factories, None, u64::MAX).unwrap(); // Peek inside and check the results if let SenderState::Finalizing(info) = result.into_state() { assert_eq!(info.num_recipients, 0, "Number of receivers"); @@ -918,7 +917,7 @@ mod test { let (utxo, input) = create_test_input(MicroTari(50), 0, &factories.commitment); builder.with_input(utxo, input); } - let err = builder.build::(&factories, None, u64::MAX).unwrap_err(); + let err = builder.build(&factories, None, u64::MAX).unwrap_err(); assert_eq!(err.message, "Too many inputs in transaction"); } @@ -955,7 +954,7 @@ mod test { MicroTari::zero(), ); // .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); - let err = builder.build::(&factories, None, u64::MAX).unwrap_err(); + let err = builder.build(&factories, None, u64::MAX).unwrap_err(); assert_eq!(err.message, "Fee is less than the minimum"); } @@ -989,7 +988,7 @@ mod test { MicroTari::zero(), ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); - let err = builder.build::(&factories, None, u64::MAX).unwrap_err(); + let err = builder.build(&factories, None, u64::MAX).unwrap_err(); assert_eq!( err.message, "You are spending (472 µT) more than you're providing (400 µT)." @@ -1037,7 +1036,7 @@ mod test { MicroTari::zero(), ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); - let result = builder.build::(&factories, None, u64::MAX).unwrap(); + let result = builder.build(&factories, None, u64::MAX).unwrap(); // Peek inside and check the results if let SenderState::Failed(TransactionProtocolError::UnsupportedError(s)) = result.into_state() { assert_eq!(s, "Multiple recipients are not supported yet") @@ -1093,7 +1092,7 @@ mod test { MicroTari::zero(), ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); - let result = builder.build::(&factories, None, u64::MAX).unwrap(); + let result = builder.build(&factories, None, u64::MAX).unwrap(); // Peek inside and check the results if let SenderState::SingleRoundMessageReady(info) = result.into_state() { assert_eq!(info.num_recipients, 1, "Number of receivers"); @@ -1146,7 +1145,7 @@ mod test { MicroTari::zero(), ) .with_change_script(script, ExecutionStack::default(), PrivateKey::default()); - let result = builder.build::(&factories, None, u64::MAX); + let result = builder.build(&factories, None, u64::MAX); match result { Ok(_) => panic!("Range proof should have failed to verify"), diff --git a/base_layer/wallet/src/output_manager_service/service.rs b/base_layer/wallet/src/output_manager_service/service.rs index 10dca57f03..3318170839 100644 --- a/base_layer/wallet/src/output_manager_service/service.rs +++ b/base_layer/wallet/src/output_manager_service/service.rs @@ -62,7 +62,6 @@ use tari_core::{ use tari_crypto::{ commitment::HomomorphicCommitmentFactory, errors::RangeProofError, - hash::blake2::Blake256, keys::{DiffieHellmanSharedSecret, PublicKey as PublicKeyTrait, SecretKey}, ristretto::RistrettoSecretKey, }; @@ -926,7 +925,7 @@ where } let stp = builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), @@ -1138,7 +1137,7 @@ where // } let mut stp = builder - .build::(&self.resources.factories, None, u64::MAX) + .build(&self.resources.factories, None, u64::MAX) .map_err(|e| OutputManagerError::BuildError(e.message))?; // if let Some((spending_key, script_private_key)) = change_keys { // // let change_script_offset_public_key = stp.get_change_sender_offset_public_key()?.ok_or_else(|| { @@ -1298,7 +1297,7 @@ where let factories = CryptoFactories::default(); let mut stp = builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), @@ -1772,7 +1771,7 @@ where } let mut stp = tx_builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), @@ -2004,7 +2003,7 @@ where } let mut stp = tx_builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), @@ -2192,7 +2191,7 @@ where .map_err(|e| OutputManagerError::BuildError(e.message))?; let mut stp = tx_builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), @@ -2327,7 +2326,7 @@ where let factories = CryptoFactories::default(); let mut stp = builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), @@ -2414,7 +2413,7 @@ where let factories = CryptoFactories::default(); let mut stp = builder - .build::( + .build( &self.resources.factories, None, self.last_seen_tip_height.unwrap_or(u64::MAX), diff --git a/base_layer/wallet/src/transaction_service/storage/sqlite_db.rs b/base_layer/wallet/src/transaction_service/storage/sqlite_db.rs index ed38be8cc3..61bb004042 100644 --- a/base_layer/wallet/src/transaction_service/storage/sqlite_db.rs +++ b/base_layer/wallet/src/transaction_service/storage/sqlite_db.rs @@ -2210,10 +2210,7 @@ mod test { SenderTransactionProtocol, }, }; - use tari_crypto::{ - hash::blake2::Blake256, - keys::{PublicKey as PublicKeyTrait, SecretKey as SecretKeyTrait}, - }; + use tari_crypto::keys::{PublicKey as PublicKeyTrait, SecretKey as SecretKeyTrait}; use tari_script::{script, ExecutionStack, TariScript}; use tari_test_utils::random::string; use tempfile::tempdir; @@ -2286,7 +2283,7 @@ mod test { ) .with_change_script(script!(Nop), ExecutionStack::default(), PrivateKey::random(&mut OsRng)); - let mut stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stp = builder.build(&factories, None, u64::MAX).unwrap(); let outbound_tx1 = OutboundTransaction { tx_id: 1u64.into(), diff --git a/base_layer/wallet/tests/output_manager_service_tests/service.rs b/base_layer/wallet/tests/output_manager_service_tests/service.rs index a39f5e21d4..b2749d1a91 100644 --- a/base_layer/wallet/tests/output_manager_service_tests/service.rs +++ b/base_layer/wallet/tests/output_manager_service_tests/service.rs @@ -50,7 +50,6 @@ use tari_core::{ }; use tari_crypto::{ commitment::HomomorphicCommitmentFactory, - hash::blake2::Blake256, keys::{PublicKey as PublicKeyTrait, SecretKey}, }; use tari_key_manager::{cipher_seed::CipherSeed, mnemonic::Mnemonic}; @@ -331,7 +330,7 @@ async fn generate_sender_transaction_message(amount: MicroTari) -> (TxId, Transa script_private_key, ); - let mut stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stp = builder.build(&factories, None, u64::MAX).unwrap(); let tx_id = stp.get_tx_id().unwrap(); ( tx_id, diff --git a/base_layer/wallet/tests/transaction_service_tests/service.rs b/base_layer/wallet/tests/transaction_service_tests/service.rs index 02a7a55505..36d0aef54d 100644 --- a/base_layer/wallet/tests/transaction_service_tests/service.rs +++ b/base_layer/wallet/tests/transaction_service_tests/service.rs @@ -2163,7 +2163,7 @@ async fn test_transaction_cancellation() { ) .with_change_script(script!(Nop), ExecutionStack::default(), PrivateKey::random(&mut OsRng)); - let mut stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stp = builder.build(&factories, None, u64::MAX).unwrap(); let tx_sender_msg = stp.build_single_round_message().unwrap(); let tx_id2 = tx_sender_msg.tx_id; let proto_message = proto::TransactionSenderMessage::single(tx_sender_msg.into()); @@ -2245,7 +2245,7 @@ async fn test_transaction_cancellation() { ) .with_change_script(script!(Nop), ExecutionStack::default(), PrivateKey::random(&mut OsRng)); - let mut stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stp = builder.build(&factories, None, u64::MAX).unwrap(); let tx_sender_msg = stp.build_single_round_message().unwrap(); let tx_id3 = tx_sender_msg.tx_id; let proto_message = proto::TransactionSenderMessage::single(tx_sender_msg.into()); @@ -2908,7 +2908,7 @@ async fn test_restarting_transaction_protocols() { inputs!(PublicKey::from_secret_key(&script_private_key)), script_private_key, ); - let mut bob_stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut bob_stp = builder.build(&factories, None, u64::MAX).unwrap(); let msg = bob_stp.build_single_round_message().unwrap(); let bob_pre_finalize = bob_stp.clone(); @@ -4251,7 +4251,7 @@ async fn test_resend_on_startup() { ) .with_change_script(script!(Nop), ExecutionStack::default(), PrivateKey::random(&mut OsRng)); - let mut stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stp = builder.build(&factories, None, u64::MAX).unwrap(); let stp_msg = stp.build_single_round_message().unwrap(); let tx_sender_msg = TransactionSenderMessage::Single(Box::new(stp_msg)); @@ -4728,7 +4728,7 @@ async fn test_transaction_timeout_cancellation() { ) .with_change_script(script!(Nop), ExecutionStack::default(), PrivateKey::random(&mut OsRng)); - let mut stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let mut stp = builder.build(&factories, None, u64::MAX).unwrap(); let stp_msg = stp.build_single_round_message().unwrap(); let tx_sender_msg = TransactionSenderMessage::Single(Box::new(stp_msg)); diff --git a/base_layer/wallet/tests/transaction_service_tests/storage.rs b/base_layer/wallet/tests/transaction_service_tests/storage.rs index 24aa980de8..528db4a5aa 100644 --- a/base_layer/wallet/tests/transaction_service_tests/storage.rs +++ b/base_layer/wallet/tests/transaction_service_tests/storage.rs @@ -39,10 +39,7 @@ use tari_core::{ SenderTransactionProtocol, }, }; -use tari_crypto::{ - hash::blake2::Blake256, - keys::{PublicKey as PublicKeyTrait, SecretKey as SecretKeyTrait}, -}; +use tari_crypto::keys::{PublicKey as PublicKeyTrait, SecretKey as SecretKeyTrait}; use tari_script::{script, ExecutionStack, TariScript}; use tari_test_utils::random; use tari_wallet::{ @@ -101,7 +98,7 @@ pub fn test_db_backend(backend: T) { ) .with_change_script(script!(Nop), ExecutionStack::default(), PrivateKey::random(&mut OsRng)); - let stp = builder.build::(&factories, None, u64::MAX).unwrap(); + let stp = builder.build(&factories, None, u64::MAX).unwrap(); let messages = vec!["Hey!".to_string(), "Yo!".to_string(), "Sup!".to_string()]; let amounts = vec![MicroTari::from(10_000), MicroTari::from(23_000), MicroTari::from(5_000)];