Skip to content
Snippets Groups Projects
Commit 2f3cc193 authored by dvermd's avatar dvermd
Browse files

[ref] core: remove keypairs from DursCore

parent c41c0e62
No related branches found
No related tags found
1 merge request!275Resolve "Change keypairs file to encrypted format (DEWIF)"
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
//! Command line options for classic Dunitrust nodes (no specialization). //! Command line options for classic Dunitrust nodes (no specialization).
use durs_conf::DuRsConf; use durs_conf::{DuRsConf, DuniterKeyPairs};
use durs_core::commands::dbex::DbExOpt; use durs_core::commands::dbex::DbExOpt;
use durs_core::commands::keys::KeysOpt; use durs_core::commands::keys::KeysOpt;
use durs_core::commands::modules::{DisableOpt, EnableOpt, ListModulesOpt}; use durs_core::commands::modules::{DisableOpt, EnableOpt, ListModulesOpt};
...@@ -68,14 +68,18 @@ impl CommandNeedKeypairs for DursCliOpt {} ...@@ -68,14 +68,18 @@ impl CommandNeedKeypairs for DursCliOpt {}
impl ExecutableModuleCommand for DursCliOpt { impl ExecutableModuleCommand for DursCliOpt {
/// Execute command /// Execute command
fn execute_module_command(self, durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError> { fn execute_module_command(
self,
durs_core: DursCore<DuRsConf>,
keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> {
match self.cmd { match self.cmd {
DursCliSubCommand::Ws2p1(module_opts) => { DursCliSubCommand::Ws2p1(module_opts) => {
DursCore::execute_module_command::<WS2Pv1Module>(durs_core, module_opts) DursCore::execute_module_command::<WS2Pv1Module>(durs_core, &keypairs, module_opts)
} }
#[cfg(not(target_arch = "arm"))] #[cfg(not(target_arch = "arm"))]
DursCliSubCommand::Gva(module_opts) => { DursCliSubCommand::Gva(module_opts) => {
DursCore::execute_module_command::<GvaModule>(durs_core, module_opts) DursCore::execute_module_command::<GvaModule>(durs_core, &keypairs, module_opts)
} }
_ => unreachable!(), _ => unreachable!(),
} }
......
...@@ -69,21 +69,21 @@ impl DuniterKeyPairs { ...@@ -69,21 +69,21 @@ impl DuniterKeyPairs {
/// Returns only the keys indicated as required /// Returns only the keys indicated as required
pub fn get_required_keys_content( pub fn get_required_keys_content(
required_keys: RequiredKeys, required_keys: RequiredKeys,
keypairs: DuniterKeyPairs, keypairs: &DuniterKeyPairs,
) -> RequiredKeysContent { ) -> RequiredKeysContent {
match required_keys { match required_keys {
RequiredKeys::MemberKeyPair => { RequiredKeys::MemberKeyPair => {
RequiredKeysContent::MemberKeyPair(keypairs.member_keypair) RequiredKeysContent::MemberKeyPair(keypairs.member_keypair.clone())
} }
RequiredKeys::MemberPublicKey => { RequiredKeys::MemberPublicKey => RequiredKeysContent::MemberPublicKey(
RequiredKeysContent::MemberPublicKey(if let Some(keys) = keypairs.member_keypair { if let Some(keys) = keypairs.member_keypair.clone() {
Some(keys.public_key()) Some(keys.public_key())
} else { } else {
None None
}) },
} ),
RequiredKeys::NetworkKeyPair => { RequiredKeys::NetworkKeyPair => {
RequiredKeysContent::NetworkKeyPair(keypairs.network_keypair) RequiredKeysContent::NetworkKeyPair(keypairs.network_keypair.clone())
} }
RequiredKeys::NetworkPublicKey => { RequiredKeys::NetworkPublicKey => {
RequiredKeysContent::NetworkPublicKey(keypairs.network_keypair.public_key()) RequiredKeysContent::NetworkPublicKey(keypairs.network_keypair.public_key())
......
...@@ -103,7 +103,7 @@ pub fn get_module_conf_and_keys<M: DursModule<DuRsConf, DursMsg>>( ...@@ -103,7 +103,7 @@ pub fn get_module_conf_and_keys<M: DursModule<DuRsConf, DursMsg>>(
currency_name: Option<&CurrencyName>, currency_name: Option<&CurrencyName>,
global_conf: &<DuRsConf as DursConfTrait>::GlobalConf, global_conf: &<DuRsConf as DursConfTrait>::GlobalConf,
module_conf_json: Option<serde_json::Value>, module_conf_json: Option<serde_json::Value>,
keypairs: DuniterKeyPairs, keypairs: &DuniterKeyPairs,
) -> Result<ModuleConfsAndKeys<M>, ModuleConfError> { ) -> Result<ModuleConfsAndKeys<M>, ModuleConfError> {
Ok(( Ok((
ModulesConf::get_module_conf::<M>(currency_name, global_conf, module_conf_json)?, ModulesConf::get_module_conf::<M>(currency_name, global_conf, module_conf_json)?,
...@@ -159,7 +159,7 @@ mod tests { ...@@ -159,7 +159,7 @@ mod tests {
None, None,
&DuRsGlobalConf::V2(DuRsGlobalConfV2::default()), &DuRsGlobalConf::V2(DuRsGlobalConfV2::default()),
None, None,
keypairs(), &keypairs(),
)?; )?;
assert_eq!( assert_eq!(
...@@ -189,7 +189,7 @@ mod tests { ...@@ -189,7 +189,7 @@ mod tests {
None, None,
&DuRsGlobalConf::V2(DuRsGlobalConfV2::default()), &DuRsGlobalConf::V2(DuRsGlobalConfV2::default()),
Some(json_conf), Some(json_conf),
keypairs(), &keypairs(),
)?; )?;
assert_eq!( assert_eq!(
...@@ -226,7 +226,7 @@ mod tests { ...@@ -226,7 +226,7 @@ mod tests {
None, None,
&DuRsGlobalConf::V2(DuRsGlobalConfV2::default()), &DuRsGlobalConf::V2(DuRsGlobalConfV2::default()),
Some(json_conf), Some(json_conf),
keypairs(), &keypairs(),
)?; )?;
assert_eq!( assert_eq!(
......
...@@ -20,7 +20,7 @@ use crate::dbex; ...@@ -20,7 +20,7 @@ use crate::dbex;
use crate::errors::DursCoreError; use crate::errors::DursCoreError;
use crate::DursCore; use crate::DursCore;
use durs_bc::dbex::{DbExBcQuery, DbExQuery, DbExTxQuery, DbExWotQuery}; use durs_bc::dbex::{DbExBcQuery, DbExQuery, DbExTxQuery, DbExWotQuery};
use durs_conf::DuRsConf; use durs_conf::{DuRsConf, DuniterKeyPairs};
#[derive(StructOpt, Debug, Clone)] #[derive(StructOpt, Debug, Clone)]
#[structopt(name = "dbex", setting(structopt::clap::AppSettings::ColoredHelp))] #[structopt(name = "dbex", setting(structopt::clap::AppSettings::ColoredHelp))]
...@@ -101,7 +101,11 @@ pub struct BalanceOpt { ...@@ -101,7 +101,11 @@ pub struct BalanceOpt {
pub struct BlocksOpt {} pub struct BlocksOpt {}
impl DursExecutableCoreCommand for DbExOpt { impl DursExecutableCoreCommand for DbExOpt {
fn execute(self, durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError> { fn execute(
self,
durs_core: DursCore<DuRsConf>,
_keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> {
let profile_path = durs_core.soft_meta_datas.profile_path; let profile_path = durs_core.soft_meta_datas.profile_path;
match self.subcommand { match self.subcommand {
......
...@@ -21,7 +21,7 @@ use crate::DursCore; ...@@ -21,7 +21,7 @@ use crate::DursCore;
use clap::arg_enum; use clap::arg_enum;
use durs_conf::keypairs::cli::*; use durs_conf::keypairs::cli::*;
use durs_conf::ui::ui_cli::CLI; use durs_conf::ui::ui_cli::CLI;
use durs_conf::DuRsConf; use durs_conf::{DuRsConf, DuniterKeyPairs};
#[derive(StructOpt, Debug, Clone, Copy)] #[derive(StructOpt, Debug, Clone, Copy)]
#[structopt( #[structopt(
...@@ -136,11 +136,14 @@ pub struct WizardOpt {} ...@@ -136,11 +136,14 @@ pub struct WizardOpt {}
pub struct ShowOpt {} pub struct ShowOpt {}
impl DursExecutableCoreCommand for KeysOpt { impl DursExecutableCoreCommand for KeysOpt {
fn execute(self, durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError> { fn execute(
self,
durs_core: DursCore<DuRsConf>,
keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> {
let cli = CLI {}; let cli = CLI {};
let profile_path = durs_core.soft_meta_datas.profile_path; let profile_path = durs_core.soft_meta_datas.profile_path;
let keypairs_file = durs_core.options.keypairs_file; let keypairs_file = durs_core.options.keypairs_file;
let keypairs = durs_core.keypairs;
match self.subcommand { match self.subcommand {
KeysSubCommand::Wizard(_) => { KeysSubCommand::Wizard(_) => {
......
...@@ -25,7 +25,7 @@ use crate::constants::DEFAULT_USER_PROFILE; ...@@ -25,7 +25,7 @@ use crate::constants::DEFAULT_USER_PROFILE;
use crate::errors::DursCoreError; use crate::errors::DursCoreError;
use crate::DursCore; use crate::DursCore;
pub use dbex::*; pub use dbex::*;
use durs_conf::DuRsConf; use durs_conf::{DuRsConf, DuniterKeyPairs};
use durs_dbs_tools::kv_db_old::KvFileDbHandler; use durs_dbs_tools::kv_db_old::KvFileDbHandler;
pub use durs_network::cli::sync::SyncOpt; pub use durs_network::cli::sync::SyncOpt;
pub use keys::KeysOpt; pub use keys::KeysOpt;
...@@ -66,13 +66,21 @@ impl DursCoreOptions { ...@@ -66,13 +66,21 @@ impl DursCoreOptions {
/// Dunitrust executable command /// Dunitrust executable command
pub trait DursExecutableCoreCommand { pub trait DursExecutableCoreCommand {
/// Execute Dunitrust command /// Execute Dunitrust command
fn execute(self, durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError>; fn execute(
self,
durs_core: DursCore<DuRsConf>,
keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError>;
} }
/// Executable module command /// Executable module command
pub trait ExecutableModuleCommand: CommandNeedKeypairs { pub trait ExecutableModuleCommand: CommandNeedKeypairs {
/// Execute module command /// Execute module command
fn execute_module_command(self, durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError>; fn execute_module_command(
self,
durs_core: DursCore<DuRsConf>,
keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError>;
} }
/// Do this command use the keypairs /// Do this command use the keypairs
...@@ -116,13 +124,19 @@ impl<T: ExecutableModuleCommand> DursCommand<T> { ...@@ -116,13 +124,19 @@ impl<T: ExecutableModuleCommand> DursCommand<T> {
plug_modules: PlugFunc, plug_modules: PlugFunc,
) -> Result<(), DursCoreError> ) -> Result<(), DursCoreError>
where where
PlugFunc: FnMut(&mut DursCore<DuRsConf>) -> Result<(), DursCoreError>, PlugFunc: FnMut(&mut DursCore<DuRsConf>, DuniterKeyPairs) -> Result<(), DursCoreError>,
{ {
let profile_path = self.options.define_profile_path(); let profile_path = self.options.define_profile_path();
let bc_db = self.open_bc_db(&profile_path)?; let bc_db = self.open_bc_db(&profile_path)?;
let durs_core = DursCore::<DuRsConf>::init(soft_name, soft_version, self.options, 0)?; let durs_core = DursCore::<DuRsConf>::init(soft_name, soft_version, self.options, 0)?;
let keypairs = durs_conf::keypairs::load_keypairs_from_file(
&profile_path,
&durs_core.options.keypairs_file,
)
.map_err(DursCoreError::LoadConfError)?;
match self.command { match self.command {
DursCommandEnum::Core(core_cmd) => DursCore::execute_core_command( DursCommandEnum::Core(core_cmd) => DursCore::execute_core_command(
bc_db, bc_db,
...@@ -130,8 +144,9 @@ impl<T: ExecutableModuleCommand> DursCommand<T> { ...@@ -130,8 +144,9 @@ impl<T: ExecutableModuleCommand> DursCommand<T> {
plug_modules, plug_modules,
profile_path, profile_path,
durs_core, durs_core,
keypairs,
), ),
DursCommandEnum::Other(cmd) => cmd.execute_module_command(durs_core), DursCommandEnum::Other(cmd) => cmd.execute_module_command(durs_core, keypairs),
} }
} }
} }
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
use crate::commands::{CommandNeedKeypairs, DursExecutableCoreCommand}; use crate::commands::{CommandNeedKeypairs, DursExecutableCoreCommand};
use crate::errors::DursCoreError; use crate::errors::DursCoreError;
use crate::DursCore; use crate::DursCore;
use durs_conf::{ChangeGlobalConf, DuRsConf}; use durs_conf::{ChangeGlobalConf, DuRsConf, DuniterKeyPairs};
use durs_module::*; use durs_module::*;
use std::collections::HashSet; use std::collections::HashSet;
...@@ -35,7 +35,11 @@ impl CommandNeedKeypairs for EnableOpt {} ...@@ -35,7 +35,11 @@ impl CommandNeedKeypairs for EnableOpt {}
impl DursExecutableCoreCommand for EnableOpt { impl DursExecutableCoreCommand for EnableOpt {
#[inline] #[inline]
fn execute(self, mut durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError> { fn execute(
self,
mut durs_core: DursCore<DuRsConf>,
_keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> {
crate::change_conf::change_global_conf( crate::change_conf::change_global_conf(
&durs_core.soft_meta_datas.profile_path.clone(), &durs_core.soft_meta_datas.profile_path.clone(),
&mut durs_core.soft_meta_datas.conf, &mut durs_core.soft_meta_datas.conf,
...@@ -57,7 +61,11 @@ impl CommandNeedKeypairs for DisableOpt {} ...@@ -57,7 +61,11 @@ impl CommandNeedKeypairs for DisableOpt {}
impl DursExecutableCoreCommand for DisableOpt { impl DursExecutableCoreCommand for DisableOpt {
#[inline] #[inline]
fn execute(self, mut durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError> { fn execute(
self,
mut durs_core: DursCore<DuRsConf>,
_keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> {
crate::change_conf::change_global_conf( crate::change_conf::change_global_conf(
&durs_core.soft_meta_datas.profile_path.clone(), &durs_core.soft_meta_datas.profile_path.clone(),
&mut durs_core.soft_meta_datas.conf, &mut durs_core.soft_meta_datas.conf,
......
...@@ -19,7 +19,7 @@ use super::InvalidInput; ...@@ -19,7 +19,7 @@ use super::InvalidInput;
use crate::commands::{CommandNeedKeypairs, DursExecutableCoreCommand}; use crate::commands::{CommandNeedKeypairs, DursExecutableCoreCommand};
use crate::errors::DursCoreError; use crate::errors::DursCoreError;
use crate::DursCore; use crate::DursCore;
use durs_conf::DuRsConf; use durs_conf::{DuRsConf, DuniterKeyPairs};
use std::fs; use std::fs;
use std::str::FromStr; use std::str::FromStr;
...@@ -64,7 +64,11 @@ impl CommandNeedKeypairs for ResetOpt { ...@@ -64,7 +64,11 @@ impl CommandNeedKeypairs for ResetOpt {
} }
impl DursExecutableCoreCommand for ResetOpt { impl DursExecutableCoreCommand for ResetOpt {
fn execute(self, durs_core: DursCore<DuRsConf>) -> Result<(), DursCoreError> { fn execute(
self,
durs_core: DursCore<DuRsConf>,
_keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> {
let profile_path = durs_core.soft_meta_datas.profile_path; let profile_path = durs_core.soft_meta_datas.profile_path;
match self.reset_type { match self.reset_type {
......
...@@ -63,9 +63,9 @@ use unwrap::unwrap; ...@@ -63,9 +63,9 @@ use unwrap::unwrap;
macro_rules! durs_plug { macro_rules! durs_plug {
( [ $( $NetworkModule:ty ),* ], [ $( $Module:ty ),* ] ) => { ( [ $( $NetworkModule:ty ),* ], [ $( $Module:ty ),* ] ) => {
{ {
|core| { |core, keypairs| {
$(core.plug::<$Module>()?;)* $(core.plug::<$Module>(&keypairs)?;)*
$(core.plug_network::<$NetworkModule>()?;)* $(core.plug_network::<$NetworkModule>(&keypairs)?;)*
Ok(()) Ok(())
} }
} }
...@@ -82,8 +82,6 @@ pub struct DursCore<DC: DursConfTrait> { ...@@ -82,8 +82,6 @@ pub struct DursCore<DC: DursConfTrait> {
server_command: Option<ServerMode>, server_command: Option<ServerMode>,
/// Software meta datas /// Software meta datas
pub soft_meta_datas: SoftwareMetaDatas<DC>, pub soft_meta_datas: SoftwareMetaDatas<DC>,
/// Keypairs
pub keypairs: DuniterKeyPairs,
/// Run duration. Zero = infinite duration. /// Run duration. Zero = infinite duration.
pub run_duration_in_secs: u64, pub run_duration_in_secs: u64,
/// Sender channel of router thread /// Sender channel of router thread
...@@ -111,6 +109,7 @@ impl DursCore<DuRsConf> { ...@@ -111,6 +109,7 @@ impl DursCore<DuRsConf> {
/// Execute module command /// Execute module command
pub fn execute_module_command<M: DursModule<DuRsConf, DursMsg>>( pub fn execute_module_command<M: DursModule<DuRsConf, DursMsg>>(
mut durs_core: DursCore<DuRsConf>, mut durs_core: DursCore<DuRsConf>,
keypairs: &DuniterKeyPairs,
module_command: M::ModuleOpt, module_command: M::ModuleOpt,
) -> Result<(), DursCoreError> { ) -> Result<(), DursCoreError> {
// Load module conf and keys // Load module conf and keys
...@@ -127,7 +126,7 @@ impl DursCore<DuRsConf> { ...@@ -127,7 +126,7 @@ impl DursCore<DuRsConf> {
durs_core.currency_name.as_ref(), durs_core.currency_name.as_ref(),
&durs_core.soft_meta_datas.conf.get_global_conf(), &durs_core.soft_meta_datas.conf.get_global_conf(),
module_conf_json, module_conf_json,
durs_core.keypairs, &keypairs,
) )
.map_err(|e| DursCoreError::PlugModuleError { .map_err(|e| DursCoreError::PlugModuleError {
module_name: M::name(), module_name: M::name(),
...@@ -159,16 +158,17 @@ impl DursCore<DuRsConf> { ...@@ -159,16 +158,17 @@ impl DursCore<DuRsConf> {
mut plug_modules: PlugFunc, mut plug_modules: PlugFunc,
profile_path: PathBuf, profile_path: PathBuf,
mut durs_core: DursCore<DuRsConf>, mut durs_core: DursCore<DuRsConf>,
keypairs: DuniterKeyPairs,
) -> Result<(), DursCoreError> ) -> Result<(), DursCoreError>
where where
PlugFunc: FnMut(&mut DursCore<DuRsConf>) -> Result<(), DursCoreError>, PlugFunc: FnMut(&mut DursCore<DuRsConf>, DuniterKeyPairs) -> Result<(), DursCoreError>,
{ {
/* /*
* CORE COMMAND PROCESSING * CORE COMMAND PROCESSING
*/ */
match core_command { match core_command {
DursCoreCommand::DisableOpt(opts) => opts.execute(durs_core), DursCoreCommand::DisableOpt(opts) => opts.execute(durs_core, keypairs),
DursCoreCommand::EnableOpt(opts) => opts.execute(durs_core), DursCoreCommand::EnableOpt(opts) => opts.execute(durs_core, keypairs),
DursCoreCommand::ListModulesOpt(opts) => { DursCoreCommand::ListModulesOpt(opts) => {
durs_core.server_command = Some(ServerMode::ListModules(opts)); durs_core.server_command = Some(ServerMode::ListModules(opts));
...@@ -177,7 +177,7 @@ impl DursCore<DuRsConf> { ...@@ -177,7 +177,7 @@ impl DursCore<DuRsConf> {
profile_path, profile_path,
durs_core.soft_meta_datas.conf.clone(), durs_core.soft_meta_datas.conf.clone(),
)); ));
plug_modules(&mut durs_core) plug_modules(&mut durs_core, keypairs)
} }
DursCoreCommand::StartOpt(_opts) => { DursCoreCommand::StartOpt(_opts) => {
durs_core.server_command = Some(ServerMode::Start()); durs_core.server_command = Some(ServerMode::Start());
...@@ -187,7 +187,7 @@ impl DursCore<DuRsConf> { ...@@ -187,7 +187,7 @@ impl DursCore<DuRsConf> {
profile_path, profile_path,
durs_core.soft_meta_datas.conf.clone(), durs_core.soft_meta_datas.conf.clone(),
)); ));
plug_modules(&mut durs_core)?; plug_modules(&mut durs_core, keypairs)?;
durs_core.start(bc_db) durs_core.start(bc_db)
} }
DursCoreCommand::SyncOpt(opts) => { DursCoreCommand::SyncOpt(opts) => {
...@@ -209,15 +209,15 @@ impl DursCore<DuRsConf> { ...@@ -209,15 +209,15 @@ impl DursCore<DuRsConf> {
profile_path, profile_path,
durs_core.soft_meta_datas.conf.clone(), durs_core.soft_meta_datas.conf.clone(),
)); ));
plug_modules(&mut durs_core)?; plug_modules(&mut durs_core, keypairs)?;
durs_core.start(bc_db) durs_core.start(bc_db)
} else { } else {
Err(DursCoreError::SyncWithoutSource) Err(DursCoreError::SyncWithoutSource)
} }
} }
DursCoreCommand::DbExOpt(opts) => opts.execute(durs_core), DursCoreCommand::DbExOpt(opts) => opts.execute(durs_core, keypairs),
DursCoreCommand::ResetOpt(opts) => opts.execute(durs_core), DursCoreCommand::ResetOpt(opts) => opts.execute(durs_core, keypairs),
DursCoreCommand::KeysOpt(opts) => opts.execute(durs_core), DursCoreCommand::KeysOpt(opts) => opts.execute(durs_core, keypairs),
} }
} }
/// Initialize Dunitrust core /// Initialize Dunitrust core
...@@ -241,12 +241,6 @@ impl DursCore<DuRsConf> { ...@@ -241,12 +241,6 @@ impl DursCore<DuRsConf> {
// Load global conf // Load global conf
let conf = let conf =
durs_conf::load_conf(profile_path.clone()).map_err(DursCoreError::LoadConfError)?; durs_conf::load_conf(profile_path.clone()).map_err(DursCoreError::LoadConfError)?;
let keypairs = durs_conf::keypairs::load_keypairs_from_file(
&profile_path,
&durs_core_opts.keypairs_file,
)
.map_err(DursCoreError::LoadConfError)?;
info!("Success to load global conf."); info!("Success to load global conf.");
// Get currency name // Get currency name
...@@ -258,7 +252,6 @@ impl DursCore<DuRsConf> { ...@@ -258,7 +252,6 @@ impl DursCore<DuRsConf> {
// Instanciate durs core // Instanciate durs core
Ok(DursCore { Ok(DursCore {
currency_name, currency_name,
keypairs,
options: durs_core_opts, options: durs_core_opts,
modules_names: Vec::new(), modules_names: Vec::new(),
network_modules_count: 0, network_modules_count: 0,
...@@ -369,8 +362,9 @@ impl DursCore<DuRsConf> { ...@@ -369,8 +362,9 @@ impl DursCore<DuRsConf> {
/// Plug a network module /// Plug a network module
pub fn plug_network<NM: NetworkModule<DuRsConf, DursMsg>>( pub fn plug_network<NM: NetworkModule<DuRsConf, DursMsg>>(
&mut self, &mut self,
keypairs: &DuniterKeyPairs,
) -> Result<(), DursCoreError> { ) -> Result<(), DursCoreError> {
self.plug_network_::<NM>() self.plug_network_::<NM>(keypairs)
.map_err(|error| DursCoreError::PlugModuleError { .map_err(|error| DursCoreError::PlugModuleError {
module_name: NM::name(), module_name: NM::name(),
error, error,
...@@ -378,6 +372,7 @@ impl DursCore<DuRsConf> { ...@@ -378,6 +372,7 @@ impl DursCore<DuRsConf> {
} }
fn plug_network_<NM: NetworkModule<DuRsConf, DursMsg>>( fn plug_network_<NM: NetworkModule<DuRsConf, DursMsg>>(
&mut self, &mut self,
keypairs: &DuniterKeyPairs,
) -> Result<(), PlugModuleError> { ) -> Result<(), PlugModuleError> {
let enabled = enabled::<DuRsConf, DursMsg, NM>(&self.soft_meta_datas.conf); let enabled = enabled::<DuRsConf, DursMsg, NM>(&self.soft_meta_datas.conf);
if enabled { if enabled {
...@@ -415,7 +410,7 @@ impl DursCore<DuRsConf> { ...@@ -415,7 +410,7 @@ impl DursCore<DuRsConf> {
self.currency_name.as_ref(), self.currency_name.as_ref(),
&soft_meta_datas.conf.get_global_conf(), &soft_meta_datas.conf.get_global_conf(),
module_conf_json, module_conf_json,
self.keypairs.clone(), &keypairs,
)?; )?;
let sync_params = network_sync.clone(); let sync_params = network_sync.clone();
...@@ -451,16 +446,19 @@ impl DursCore<DuRsConf> { ...@@ -451,16 +446,19 @@ impl DursCore<DuRsConf> {
Ok(()) Ok(())
} }
} else { } else {
self.plug_::<NM>(true) self.plug_::<NM>(keypairs, true)
} }
} else { } else {
self.plug_::<NM>(true) self.plug_::<NM>(keypairs, true)
} }
} }
#[inline] #[inline]
/// Plug a module /// Plug a module
pub fn plug<M: DursModule<DuRsConf, DursMsg>>(&mut self) -> Result<(), DursCoreError> { pub fn plug<M: DursModule<DuRsConf, DursMsg>>(
self.plug_::<M>(false) &mut self,
keypairs: &DuniterKeyPairs,
) -> Result<(), DursCoreError> {
self.plug_::<M>(keypairs, false)
.map_err(|error| DursCoreError::PlugModuleError { .map_err(|error| DursCoreError::PlugModuleError {
module_name: M::name(), module_name: M::name(),
error, error,
...@@ -470,6 +468,7 @@ impl DursCore<DuRsConf> { ...@@ -470,6 +468,7 @@ impl DursCore<DuRsConf> {
/// Plug a module /// Plug a module
pub fn plug_<M: DursModule<DuRsConf, DursMsg>>( pub fn plug_<M: DursModule<DuRsConf, DursMsg>>(
&mut self, &mut self,
keypairs: &DuniterKeyPairs,
is_network_module: bool, is_network_module: bool,
) -> Result<(), PlugModuleError> { ) -> Result<(), PlugModuleError> {
let enabled = enabled::<DuRsConf, DursMsg, M>(&self.soft_meta_datas.conf); let enabled = enabled::<DuRsConf, DursMsg, M>(&self.soft_meta_datas.conf);
...@@ -500,7 +499,7 @@ impl DursCore<DuRsConf> { ...@@ -500,7 +499,7 @@ impl DursCore<DuRsConf> {
self.currency_name.as_ref(), self.currency_name.as_ref(),
&soft_meta_datas.conf.get_global_conf(), &soft_meta_datas.conf.get_global_conf(),
module_conf_json, module_conf_json,
self.keypairs.clone(), keypairs,
)?; )?;
let thread_builder = thread::Builder::new().name(M::name().0.into()); let thread_builder = thread::Builder::new().name(M::name().0.into());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment