aggstam 3 лет назад
Родитель
Сommit
1afb977a19

+ 2 - 3
bin/dhtd/dhtd/src/proto.rs

@@ -94,6 +94,7 @@ impl net::Message for FileReply {
 }
 
 impl ProtocolDht {
+    #[allow(dead_code)]
     pub async fn init(channel: ChannelPtr, p2p: P2pPtr, state: DhtdPtr) -> Result<ProtocolBasePtr> {
         let msg_subsystem = channel.get_message_subsystem();
         msg_subsystem.add_dispatch::<NetHashMapInsert<blake3::Hash, Vec<blake3::Hash>>>().await;
@@ -133,9 +134,7 @@ impl ProtocolDht {
 
             let mut state = self.state.write().await;
 
-            if !state.routing_table.contains_key(&msg.k) {
-                state.routing_table.insert(msg.k, HashSet::new());
-            }
+            state.routing_table.entry(msg.k).or_insert_with(HashSet::new);
 
             let hashset = state.routing_table.get_mut(&msg.k).unwrap();
             hashset.insert(self.channel.address());

+ 1 - 0
bin/dhtd/dhtd/src/tests.rs

@@ -35,6 +35,7 @@ use url::Url;
 
 use super::{proto::ProtocolDht, Dhtd};
 
+#[allow(dead_code)]
 async fn dht_remote_get_insert_real(ex: Arc<Executor<'_>>) -> Result<()> {
     const NET_SIZE: usize = 5;
 

+ 5 - 7
bin/faucetd/src/main.rs

@@ -182,6 +182,8 @@ struct Args {
 }
 
 type ProvingKeyMap = Arc<RwLock<HashMap<[u8; 32], Vec<(String, ProvingKey, ZkBinary)>>>>;
+type AirdropMap = Arc<Mutex<HashMap<[u8; 32], i64>>>;
+type ChallengeMap = Arc<Mutex<HashMap<[u8; 32], (BigUint, u64)>>>;
 
 pub struct Faucetd {
     synced: Mutex<bool>, // AtomicBool is weird in Arc
@@ -192,8 +194,8 @@ pub struct Faucetd {
     merkle_tree: BridgeTree<MerkleNode, MERKLE_DEPTH>,
     airdrop_timeout: i64,
     airdrop_limit: u64,
-    airdrop_map: Arc<Mutex<HashMap<[u8; 32], i64>>>,
-    challenge_map: Arc<Mutex<HashMap<[u8; 32], (BigUint, u64)>>>,
+    airdrop_map: AirdropMap,
+    challenge_map: ChallengeMap,
     proving_keys: ProvingKeyMap,
 }
 
@@ -596,11 +598,7 @@ impl Faucetd {
     }
 }
 
-async fn prune_airdrop_maps(
-    rate_map: Arc<Mutex<HashMap<[u8; 32], i64>>>,
-    challenge_map: Arc<Mutex<HashMap<[u8; 32], (BigUint, u64)>>>,
-    timeout: i64,
-) {
+async fn prune_airdrop_maps(rate_map: AirdropMap, challenge_map: ChallengeMap, timeout: i64) {
     loop {
         sleep(timeout as u64).await;
         debug!("Pruning airdrop maps");

+ 2 - 0
src/contract/consensus/src/client/proposal_v1.rs

@@ -331,6 +331,7 @@ impl ConsensusProposalCallBuilder {
     }
 }
 
+#[allow(clippy::too_many_arguments)]
 pub fn create_proposal_reward_proof(
     zkbin: &ZkBinary,
     pk: &ProvingKey,
@@ -401,6 +402,7 @@ pub fn create_proposal_reward_proof(
     Ok((proof, public_inputs))
 }
 
+#[allow(clippy::too_many_arguments)]
 pub fn create_proposal_mint_proof(
     zkbin: &ZkBinary,
     pk: &ProvingKey,

+ 1 - 0
src/contract/consensus/src/client/stake_v1.rs

@@ -167,6 +167,7 @@ impl ConsensusStakeCallBuilder {
     }
 }
 
+#[allow(clippy::too_many_arguments)]
 pub fn create_stake_mint_proof(
     zkbin: &ZkBinary,
     pk: &ProvingKey,

+ 1 - 1
src/contract/consensus/src/entrypoint/proposal_burn_v1.rs

@@ -159,7 +159,7 @@ pub(crate) fn consensus_proposal_burn_process_instruction_v1(
 
     // Verify next call StakeInput is the same as this calls input
     let next_params: ConsensusProposalRewardParamsV1 = deserialize(&next.data[1..])?;
-    if input != &next_params.burnt_input || &params.public_key != &next_params.burnt_public_key {
+    if input != &next_params.burnt_input || params.public_key != next_params.burnt_public_key {
         msg!("[ConsensusProposalBurnV1] Error: Next call input mismatch");
         return Err(MoneyError::NextCallInputMissmatch.into())
     }

+ 4 - 5
src/contract/consensus/src/entrypoint/proposal_mint_v1.rs

@@ -24,7 +24,7 @@ use darkfi_money_contract::{
 };
 use darkfi_sdk::{
     crypto::{
-        pasta_prelude::*, pedersen_commitment_base, Coin, ContractId, MerkleNode, PublicKey,
+        pasta_prelude::*, pedersen_commitment_base, ContractId, MerkleNode, PublicKey,
         CONSENSUS_CONTRACT_ID, DARK_TOKEN_ID,
     },
     db::{db_contains_key, db_lookup, db_set},
@@ -153,9 +153,9 @@ pub(crate) fn consensus_proposal_mint_process_instruction_v1(
     // Verify previous call input is the same as this calls StakeInput
     let previous_params: ConsensusProposalRewardParamsV1 = deserialize(&previous.data[1..])?;
     let previous_input = &previous_params.mint_input;
-    if &previous_input != &input ||
+    if previous_input != input ||
         &previous_params.output != output ||
-        &previous_params.new_serial_commit != &params.serial_commit
+        previous_params.new_serial_commit != params.serial_commit
     {
         msg!("[ConsensusProposalMintV1] Error: Previous call input mismatch");
         return Err(MoneyError::PreviousCallInputMissmatch.into())
@@ -176,10 +176,9 @@ pub(crate) fn consensus_proposal_mint_process_instruction_v1(
         msg!("[ConsensusProposalMintV1] Error: Duplicate coin found in output");
         return Err(MoneyError::DuplicateCoin.into())
     }
-    let coin = Coin::from(output.coin);
 
     // Create a state update.
-    let update = ConsensusStakeUpdateV1 { coin };
+    let update = ConsensusStakeUpdateV1 { coin: output.coin };
     let mut update_data = vec![];
     update_data.write_u8(ConsensusFunction::StakeV1 as u8)?;
     update.encode(&mut update_data)?;

+ 2 - 2
src/contract/consensus/src/entrypoint/proposal_reward_v1.rs

@@ -193,7 +193,7 @@ pub(crate) fn consensus_proposal_reward_process_instruction_v1(
     // Verify previous call input is the same as this calls StakeInput
     let previous_params: ConsensusProposalBurnParamsV1 = deserialize(&previous.data[1..])?;
     let previous_input = &previous_params.input;
-    if &previous_input != &burnt_input || &previous_params.public_key != &params.burnt_public_key {
+    if previous_input != burnt_input || previous_params.public_key != params.burnt_public_key {
         msg!("[ConsensusProposalRewardV1] Error: Previous call input mismatch");
         return Err(MoneyError::PreviousCallInputMissmatch.into())
     }
@@ -229,7 +229,7 @@ pub(crate) fn consensus_proposal_reward_process_instruction_v1(
     let next_params: ConsensusProposalMintParamsV1 = deserialize(&next.data[1..])?;
     if mint_input != &next_params.input ||
         output != &next_params.output ||
-        &params.new_serial_commit != &next_params.serial_commit
+        params.new_serial_commit != next_params.serial_commit
     {
         msg!("[ConsensusProposalRewardV1] Error: Next call input mismatch");
         return Err(MoneyError::NextCallInputMissmatch.into())

+ 3 - 4
src/contract/consensus/src/entrypoint/stake_v1.rs

@@ -25,7 +25,7 @@ use darkfi_money_contract::{
 };
 use darkfi_sdk::{
     crypto::{
-        pasta_prelude::*, pedersen_commitment_base, Coin, ContractId, MerkleNode, PublicKey,
+        pasta_prelude::*, pedersen_commitment_base, ContractId, MerkleNode, PublicKey,
         CONSENSUS_CONTRACT_ID, DARK_TOKEN_ID, MONEY_CONTRACT_ID,
     },
     db::{db_contains_key, db_lookup, db_set},
@@ -148,7 +148,7 @@ pub(crate) fn consensus_stake_process_instruction_v1(
     // Verify previous call input is the same as this calls StakeInput
     let previous_params: MoneyStakeParamsV1 = deserialize(&previous.data[1..])?;
     let previous_input = &previous_params.input;
-    if &previous_input != &input {
+    if previous_input != input {
         msg!("[ConsensusStakeV1] Error: Previous call input mismatch");
         return Err(MoneyError::PreviousCallInputMissmatch.into())
     }
@@ -167,10 +167,9 @@ pub(crate) fn consensus_stake_process_instruction_v1(
         msg!("[ConsensusStakeV1] Error: Duplicate coin found in output");
         return Err(MoneyError::DuplicateCoin.into())
     }
-    let coin = Coin::from(output.coin);
 
     // Create a state update.
-    let update = ConsensusStakeUpdateV1 { coin };
+    let update = ConsensusStakeUpdateV1 { coin: output.coin };
     let mut update_data = vec![];
     update_data.write_u8(ConsensusFunction::StakeV1 as u8)?;
     update.encode(&mut update_data)?;

+ 1 - 0
src/contract/money/src/client/mint_v1.rs

@@ -168,6 +168,7 @@ impl MintCallBuilder {
     }
 }
 
+#[allow(clippy::too_many_arguments)]
 pub fn create_token_mint_proof(
     zkbin: &ZkBinary,
     pk: &ProvingKey,

+ 1 - 0
src/contract/money/src/client/transfer_v1.rs

@@ -439,6 +439,7 @@ pub fn create_transfer_burn_proof(
     Ok((proof, public_inputs))
 }
 
+#[allow(clippy::too_many_arguments)]
 pub fn create_transfer_mint_proof(
     zkbin: &ZkBinary,
     pk: &ProvingKey,

+ 1 - 0
src/contract/money/src/client/unstake_v1.rs

@@ -168,6 +168,7 @@ impl MoneyUnstakeCallBuilder {
     }
 }
 
+#[allow(clippy::too_many_arguments)]
 pub fn create_unstake_mint_proof(
     zkbin: &ZkBinary,
     pk: &ProvingKey,

+ 4 - 7
src/contract/money/src/entrypoint/genesis_mint_v1.rs

@@ -18,8 +18,8 @@
 
 use darkfi_sdk::{
     crypto::{
-        pasta_prelude::*, pedersen_commitment_base, pedersen_commitment_u64, Coin, ContractId,
-        PublicKey, DARK_TOKEN_ID,
+        pasta_prelude::*, pedersen_commitment_base, pedersen_commitment_u64, ContractId,
+        DARK_TOKEN_ID,
     },
     db::{db_contains_key, db_lookup},
     error::ContractError,
@@ -48,10 +48,7 @@ pub(crate) fn money_genesis_mint_get_metadata_v1(
     // Public inputs for the ZK proofs we have to verify
     let mut zk_public_inputs: Vec<(String, Vec<pallas::Base>)> = vec![];
     // Public keys for the transaction signatures we have to verify
-    let mut signature_pubkeys: Vec<PublicKey> = vec![];
-
-    // Retrieve the pubkey from clear input
-    signature_pubkeys.push(params.input.signature_public);
+    let signature_pubkeys = vec![params.input.signature_public];
 
     // Grab the pedersen commitment from the anonymous output
     let value_coords = params.output.value_commit.to_affine().coordinates().unwrap();
@@ -126,7 +123,7 @@ pub(crate) fn money_genesis_mint_process_instruction_v1(
     }
 
     // Create a state update. We only need the new coin.
-    let update = MoneyMintUpdateV1 { coin: Coin::from(params.output.coin) };
+    let update = MoneyMintUpdateV1 { coin: params.output.coin };
     let mut update_data = vec![];
     update_data.write_u8(MoneyFunction::MintV1 as u8)?;
     update.encode(&mut update_data)?;

+ 5 - 7
src/contract/money/src/entrypoint/mint_v1.rs

@@ -18,8 +18,8 @@
 
 use darkfi_sdk::{
     crypto::{
-        pasta_prelude::*, pedersen_commitment_base, pedersen_commitment_u64, poseidon_hash, Coin,
-        ContractId, MerkleNode, PublicKey, TokenId,
+        pasta_prelude::*, pedersen_commitment_base, pedersen_commitment_u64, poseidon_hash,
+        ContractId, MerkleNode, TokenId,
     },
     db::{db_contains_key, db_lookup, db_set},
     error::{ContractError, ContractResult},
@@ -48,13 +48,11 @@ pub(crate) fn money_mint_get_metadata_v1(
 
     // Public inputs for the ZK proofs we have to verify
     let mut zk_public_inputs: Vec<(String, Vec<pallas::Base>)> = vec![];
-    // Public keys for the transaction signatures we have to verify
-    let mut signature_pubkeys: Vec<PublicKey> = vec![];
-
+    // Public keys for the transaction signatures we have to verify.
     // The minting transaction creates 1 clear input and 1 anonymous output.
     // We check the signature from the clear input, which is supposed to be
     // signed by the mint authority.
-    signature_pubkeys.push(params.input.signature_public);
+    let signature_pubkeys = vec![params.input.signature_public];
 
     let value_coords = params.output.value_commit.to_affine().coordinates().unwrap();
     let token_coords = params.output.token_commit.to_affine().coordinates().unwrap();
@@ -136,7 +134,7 @@ pub(crate) fn money_mint_process_instruction_v1(
     }
 
     // Create a state update. We only need the new coin.
-    let update = MoneyMintUpdateV1 { coin: Coin::from(params.output.coin) };
+    let update = MoneyMintUpdateV1 { coin: params.output.coin };
     let mut update_data = vec![];
     update_data.write_u8(MoneyFunction::MintV1 as u8)?;
     update.encode(&mut update_data)?;

+ 5 - 6
src/contract/money/src/entrypoint/swap_v1.rs

@@ -17,7 +17,7 @@
  */
 
 use darkfi_sdk::{
-    crypto::{Coin, ContractId},
+    crypto::ContractId,
     db::{db_contains_key, db_lookup},
     error::{ContractError, ContractResult},
     msg,
@@ -41,7 +41,7 @@ pub(crate) fn money_otcswap_get_metadata_v1(
     calls: Vec<ContractCall>,
 ) -> Result<Vec<u8>, ContractError> {
     // In here we can use the same function as we use in `TransferV1`.
-    Ok(money_transfer_get_metadata_v1(cid, call_idx, calls)?)
+    money_transfer_get_metadata_v1(cid, call_idx, calls)
 }
 
 /// `process_instruction` function for `Money::OtcSwapV1`
@@ -137,14 +137,13 @@ pub(crate) fn money_otcswap_process_instruction_v1(
 
     // Newly created coins for this call are in the outputs
     for (i, output) in params.outputs.iter().enumerate() {
-        if new_coins.contains(&Coin::from(output.coin)) ||
-            db_contains_key(coins_db, &serialize(&output.coin))?
+        if new_coins.contains(&output.coin) || db_contains_key(coins_db, &serialize(&output.coin))?
         {
             msg!("[OtcSwapV1] Error: Duplicate coin found in output {}", i);
             return Err(MoneyError::DuplicateCoin.into())
         }
 
-        new_coins.push(Coin::from(output.coin));
+        new_coins.push(output.coin);
     }
 
     // Create a state update. We also use `MoneyTransferUpdateV1` because
@@ -167,5 +166,5 @@ pub(crate) fn money_otcswap_process_update_v1(
     update: MoneyTransferUpdateV1,
 ) -> ContractResult {
     // In here we can use the same function as we use in `TransferV1`.
-    Ok(money_transfer_process_update_v1(cid, update)?)
+    money_transfer_process_update_v1(cid, update)
 }

+ 3 - 4
src/contract/money/src/entrypoint/transfer_v1.rs

@@ -18,7 +18,7 @@
 
 use darkfi_sdk::{
     crypto::{
-        pasta_prelude::*, pedersen_commitment_base, pedersen_commitment_u64, Coin, ContractId,
+        pasta_prelude::*, pedersen_commitment_base, pedersen_commitment_u64, ContractId,
         MerkleNode, PublicKey, DARK_TOKEN_ID,
     },
     db::{db_contains_key, db_get, db_lookup, db_set},
@@ -216,15 +216,14 @@ pub(crate) fn money_transfer_process_instruction_v1(
     // and we also check that they haven't existed before.
     let mut new_coins = Vec::with_capacity(params.outputs.len());
     for (i, output) in params.outputs.iter().enumerate() {
-        if new_coins.contains(&Coin::from(output.coin)) ||
-            db_contains_key(coins_db, &serialize(&output.coin))?
+        if new_coins.contains(&output.coin) || db_contains_key(coins_db, &serialize(&output.coin))?
         {
             msg!("[TransferV1] Error: Duplicate coin found in output {}", i);
             return Err(MoneyError::DuplicateCoin.into())
         }
 
         // Append this new coin to seen coins, and subtract the value commitment
-        new_coins.push(Coin::from(output.coin));
+        new_coins.push(output.coin);
         valcom_total -= output.value_commit;
     }
 

+ 3 - 4
src/contract/money/src/entrypoint/unstake_v1.rs

@@ -18,7 +18,7 @@
 
 use darkfi_sdk::{
     crypto::{
-        pasta_prelude::*, pedersen_commitment_base, Coin, ContractId, MerkleNode, PublicKey,
+        pasta_prelude::*, pedersen_commitment_base, ContractId, MerkleNode, PublicKey,
         CONSENSUS_CONTRACT_ID, DARK_TOKEN_ID,
     },
     db::{db_contains_key, db_lookup, db_set},
@@ -149,7 +149,7 @@ pub(crate) fn money_unstake_process_instruction_v1(
     // Verify previous call input is the same as this calls StakeInput
     let previous_params: ConsensusUnstakeParamsV1 = deserialize(&previous.data[1..])?;
     let previous_input = &previous_params.input;
-    if &previous_input != &input {
+    if previous_input != input {
         msg!("[MoneyUnstakeV1] Error: Previous call input mismatch");
         return Err(MoneyError::PreviousCallInputMissmatch.into())
     }
@@ -183,10 +183,9 @@ pub(crate) fn money_unstake_process_instruction_v1(
         msg!("[MoneyUnstakeV1] Error: Duplicate coin found in output");
         return Err(MoneyError::DuplicateCoin.into())
     }
-    let coin = Coin::from(output.coin);
 
     // Create a state update.
-    let update = MoneyUnstakeUpdateV1 { coin };
+    let update = MoneyUnstakeUpdateV1 { coin: output.coin };
     let mut update_data = vec![];
     update_data.write_u8(MoneyFunction::UnstakeV1 as u8)?;
     update.encode(&mut update_data)?;

+ 1 - 1
src/dht2/mod.rs

@@ -311,7 +311,7 @@ impl Dht {
             return Err(Error::DhtChunkNotFound)
         }
 
-        return Ok(chunk_path)
+        Ok(chunk_path)
     }
 
     /// Attempt to fetch the list of chunks for a given file from the local storage.