Skip to content

Commit 34c6ef2

Browse files
committed
refactor: minor thing
1 parent f8d99a3 commit 34c6ef2

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

crates/module/src/module.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,16 @@ pub enum ModuleInitError {
7171

7272
pub type ModuleInitResult<T> = Result<T, ModuleInitError>;
7373

74+
pub type ModuleSupportedConsensusVersions = BTreeMap<ConsensusVersionMajor, ConsensusVersionMinor>;
75+
7476
/// Module "constructor"
7577
#[async_trait]
7678
pub trait ModuleInit: Any {
7779
fn kind(&self) -> ModuleKind;
7880

7981
/// All major consensus version supported by the module, with latest
8082
/// supported minor version for each
81-
fn supported_versions(&self) -> BTreeMap<ConsensusVersionMajor, ConsensusVersionMinor>;
83+
fn supported_versions(&self) -> ModuleSupportedConsensusVersions;
8284

8385
/// Create an instance of module for given arguments
8486
///

crates/modules/app-consensus/src/module.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use bfte_module::module::config::ModuleConfig;
1414
use bfte_module::module::db::{
1515
DbResult, DbTxResult, ModuleDatabase, ModuleReadableTransaction, ModuleWriteTransactionCtx,
1616
};
17-
use bfte_module::module::{DynModuleInit, IModule};
17+
use bfte_module::module::{IModule, ModuleSupportedConsensusVersions};
1818
use bfte_util_db::redb_bincode::ReadableTable as _;
1919
use bfte_util_error::{Whatever, WhateverResult};
2020
use snafu::{OptionExt as _, ResultExt as _, whatever};
@@ -597,7 +597,7 @@ impl AppConsensusModule {
597597

598598
pub async fn record_module_init_versions(
599599
&self,
600-
modules_inits: &BTreeMap<ModuleKind, DynModuleInit>,
600+
modules_supported_versions: &BTreeMap<ModuleKind, ModuleSupportedConsensusVersions>,
601601
) {
602602
let module_configs = self.get_modules_configs().await;
603603

@@ -607,11 +607,12 @@ impl AppConsensusModule {
607607
dbtx.open_table(&tables::pending_modules_versions_votes::TABLE)?;
608608

609609
for (module_id, module_config) in module_configs {
610-
let module_init = modules_inits.get(&module_config.kind).unwrap_or_else(|| {
611-
panic!("Missing module init for kind: {}", module_config.kind)
612-
});
610+
let supported_versions = modules_supported_versions
611+
.get(&module_config.kind)
612+
.unwrap_or_else(|| {
613+
panic!("Missing module supported versions for kind: {}", module_config.kind)
614+
});
613615

614-
let supported_versions = module_init.supported_versions();
615616
let current_major = module_config.version.major();
616617

617618
let max_minor = supported_versions.get(&current_major).unwrap_or_else(|| {

crates/node-app/src/lib.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use bfte_db::error::DbResult;
2929
use bfte_module::effect::{EffectKind as _, EffectKindExt as _, ModuleCItemEffect};
3030
use bfte_module::module::config::ModuleConfig;
3131
use bfte_module::module::db::{ModuleDatabase, ModuleWriteTransactionCtx};
32-
use bfte_module::module::{DynModuleInit, DynModuleWithConfig, ModuleInit, ModuleInitArgs};
32+
use bfte_module::module::{DynModuleInit, DynModuleWithConfig, ModuleInit, ModuleInitArgs, ModuleSupportedConsensusVersions};
3333
use bfte_module_app_consensus::effects::ConsensusParamsChange;
3434
use bfte_module_app_consensus::{AppConsensusModule, AppConsensusModuleInit};
3535
use bfte_node_app_core::NodeAppApi;
@@ -252,10 +252,16 @@ impl NodeApp {
252252
}
253253

254254
async fn record_modules_versions(&self) {
255+
// Collect supported versions from all module inits
256+
let mut modules_supported_versions = BTreeMap::new();
257+
for (module_kind, module_init) in &self.modules_inits {
258+
modules_supported_versions.insert(*module_kind, module_init.supported_versions());
259+
}
260+
255261
let modules_read = self.modules.read().await;
256262
let app_consensus = self.get_app_consensus_module(&modules_read);
257263
app_consensus
258-
.record_module_init_versions(&self.modules_inits)
264+
.record_module_init_versions(&modules_supported_versions)
259265
.await;
260266
}
261267
async fn setup_modules_to(

0 commit comments

Comments
 (0)