From 4f561ba53bc06cf0026851bbc0393cb77d6b7fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Stuczy=C5=84ski?= Date: Tue, 19 Apr 2022 11:36:51 +0100 Subject: [PATCH] Moved dealers related parts to separate module --- contracts/coconut-dkg/src/dealers/mod.rs | 6 +++ .../coconut-dkg/src/{ => dealers}/queries.rs | 0 .../coconut-dkg/src/{ => dealers}/storage.rs | 0 .../src/{ => dealers}/transactions.rs | 37 +++++++++++-------- contracts/coconut-dkg/src/epoch/mod.rs | 2 + contracts/coconut-dkg/src/lib.rs | 7 ++-- 6 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 contracts/coconut-dkg/src/dealers/mod.rs rename contracts/coconut-dkg/src/{ => dealers}/queries.rs (100%) rename contracts/coconut-dkg/src/{ => dealers}/storage.rs (100%) rename contracts/coconut-dkg/src/{ => dealers}/transactions.rs (83%) create mode 100644 contracts/coconut-dkg/src/epoch/mod.rs diff --git a/contracts/coconut-dkg/src/dealers/mod.rs b/contracts/coconut-dkg/src/dealers/mod.rs new file mode 100644 index 0000000000..11f07ae776 --- /dev/null +++ b/contracts/coconut-dkg/src/dealers/mod.rs @@ -0,0 +1,6 @@ +// Copyright 2022 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +pub mod queries; +pub mod storage; +pub mod transactions; diff --git a/contracts/coconut-dkg/src/queries.rs b/contracts/coconut-dkg/src/dealers/queries.rs similarity index 100% rename from contracts/coconut-dkg/src/queries.rs rename to contracts/coconut-dkg/src/dealers/queries.rs diff --git a/contracts/coconut-dkg/src/storage.rs b/contracts/coconut-dkg/src/dealers/storage.rs similarity index 100% rename from contracts/coconut-dkg/src/storage.rs rename to contracts/coconut-dkg/src/dealers/storage.rs diff --git a/contracts/coconut-dkg/src/transactions.rs b/contracts/coconut-dkg/src/dealers/transactions.rs similarity index 83% rename from contracts/coconut-dkg/src/transactions.rs rename to contracts/coconut-dkg/src/dealers/transactions.rs index f2debdeb74..9060cd85e6 100644 --- a/contracts/coconut-dkg/src/transactions.rs +++ b/contracts/coconut-dkg/src/dealers/transactions.rs @@ -2,9 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use crate::constants::{INVALID_ED25519_BLACKLISTING_EXPIRATION, MINIMUM_DEPOSIT}; -use crate::storage::{ - blacklist_dealer, current_dealers, next_node_index, obtain_blacklisting, past_dealers, -}; +use crate::dealers::storage as dealers_storage; use crate::ContractError; use coconut_dkg_common::types::{ BlacklistingReason, BlockHeight, DealerDetails, EncodedBTEPublicKeyWithProof, @@ -23,7 +21,7 @@ fn verify_dealer( dealer: &Addr, ) -> Result<(), ContractError> { if let Some((blacklisting, expired)) = - obtain_blacklisting(deps.storage, dealer, current_height)? + dealers_storage::obtain_blacklisting(deps.storage, dealer, current_height)? { if !expired { return Err(ContractError::BlacklistedDealer { @@ -32,7 +30,10 @@ fn verify_dealer( } } - if current_dealers().may_load(deps.storage, dealer)?.is_some() { + if dealers_storage::current_dealers() + .may_load(deps.storage, dealer)? + .is_some() + { return Err(ContractError::AlreadyADealer); } @@ -122,7 +123,7 @@ pub fn try_add_dealer( owner_signature, &ed25519_key, ) { - blacklist_dealer( + dealers_storage::blacklist_dealer( deps.storage, &info.sender, BlacklistingReason::Ed25519PossessionVerificationFailure, @@ -136,14 +137,20 @@ pub fn try_add_dealer( let _deposit = validate_dealer_deposit(info.funds)?; // if it was already a dealer in the past, assign the same node index - let node_index = - if let Some(prior_details) = past_dealers().may_load(deps.storage, &info.sender)? { - // since this dealer is going to become active now, remove it from the past dealers - past_dealers().replace(deps.storage, &info.sender, None, Some(&prior_details))?; - prior_details.assigned_index - } else { - next_node_index(deps.storage)? - }; + let node_index = if let Some(prior_details) = + dealers_storage::past_dealers().may_load(deps.storage, &info.sender)? + { + // since this dealer is going to become active now, remove it from the past dealers + dealers_storage::past_dealers().replace( + deps.storage, + &info.sender, + None, + Some(&prior_details), + )?; + prior_details.assigned_index + } else { + dealers_storage::next_node_index(deps.storage)? + }; // save the dealer into the storage let dealer_details = DealerDetails { @@ -154,7 +161,7 @@ pub fn try_add_dealer( bte_public_key_with_proof: bte_key_with_proof, assigned_index: node_index, }; - current_dealers().save(deps.storage, &info.sender, &dealer_details)?; + dealers_storage::current_dealers().save(deps.storage, &info.sender, &dealer_details)?; Ok(Response::new().set_data(node_index.to_be_bytes())) } diff --git a/contracts/coconut-dkg/src/epoch/mod.rs b/contracts/coconut-dkg/src/epoch/mod.rs new file mode 100644 index 0000000000..87d5c392c8 --- /dev/null +++ b/contracts/coconut-dkg/src/epoch/mod.rs @@ -0,0 +1,2 @@ +// Copyright 2022 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 diff --git a/contracts/coconut-dkg/src/lib.rs b/contracts/coconut-dkg/src/lib.rs index 11a8bd6dca..cb0baa41b3 100644 --- a/contracts/coconut-dkg/src/lib.rs +++ b/contracts/coconut-dkg/src/lib.rs @@ -6,11 +6,10 @@ use coconut_dkg_common::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg}; use cosmwasm_std::{entry_point, Deps, DepsMut, Env, MessageInfo, QueryResponse, Response}; mod constants; +mod dealers; +mod epoch; mod error; -mod queries; -mod storage; mod support; -mod transactions; /// Instantiate the contract. /// @@ -40,7 +39,7 @@ pub fn execute( ed25519_key, bte_key_with_proof, owner_signature, - } => transactions::try_add_dealer( + } => dealers::transactions::try_add_dealer( deps, env, info,