Skip to content

Commit 0845a86

Browse files
committed
refactor: make redelegations a single arg
1 parent 89189c1 commit 0845a86

2 files changed

Lines changed: 32 additions & 13 deletions

File tree

webserver/src/response/pos.rs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,28 @@ impl Bond {
178178
}
179179
}
180180

181+
pub struct MergedBondRedelegation {
182+
pub redelegation_end_epoch: i32,
183+
pub chain_state: ChainCrawlerStateDb,
184+
pub min_num_of_blocks: i32,
185+
pub min_duration: i32,
186+
pub slash_processing_epoch_offset: i32,
187+
}
188+
181189
impl MergedBond {
182190
pub fn from(
183191
amount: BigDecimal,
184192
db_validator: ValidatorDb,
185-
redelegation_end_epoch: Option<i32>,
186-
chain_state: &ChainCrawlerStateDb,
187-
min_num_of_blocks: i32,
188-
min_duration: i32,
189-
slash_processing_epoch_offset: i32,
193+
redelegation: Option<MergedBondRedelegation>,
190194
) -> Self {
191-
match redelegation_end_epoch {
192-
Some(redelegation_end_epoch) => {
195+
match redelegation {
196+
Some(MergedBondRedelegation {
197+
redelegation_end_epoch,
198+
chain_state,
199+
min_num_of_blocks,
200+
min_duration,
201+
slash_processing_epoch_offset,
202+
}) => {
193203
let earliest_redelegation_epoch =
194204
redelegation_end_epoch - 1 + slash_processing_epoch_offset;
195205

webserver/src/service/pos.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ use crate::error::pos::PoSError;
88
use crate::repository::chain::{ChainRepository, ChainRepositoryTrait};
99
use crate::repository::pos::{PosRepository, PosRepositoryTrait};
1010
use crate::response::pos::{
11-
Bond, BondStatus, MergedBond, Reward, Unbond, ValidatorWithId, Withdraw,
11+
Bond, BondStatus, MergedBond, MergedBondRedelegation, Reward, Unbond,
12+
ValidatorWithId, Withdraw,
1213
};
1314

1415
#[derive(Clone)]
@@ -153,14 +154,22 @@ impl PosService {
153154
let bonds: Vec<MergedBond> = db_bonds
154155
.into_iter()
155156
.map(|(_, validator, redelegation_end_epoch, amount)| {
157+
let redelegation =
158+
redelegation_end_epoch.map(|redelegation_end_epoch| {
159+
MergedBondRedelegation {
160+
redelegation_end_epoch,
161+
chain_state: chain_state.clone(),
162+
min_num_of_blocks: parameters.min_num_of_blocks,
163+
min_duration: parameters.min_duration,
164+
slash_processing_epoch_offset: parameters
165+
.slash_processing_epoch_offset,
166+
}
167+
});
168+
156169
MergedBond::from(
157170
amount.unwrap_or(BigDecimal::zero()),
158171
validator,
159-
redelegation_end_epoch,
160-
&chain_state,
161-
parameters.min_num_of_blocks,
162-
parameters.min_duration,
163-
parameters.slash_processing_epoch_offset,
172+
redelegation,
164173
)
165174
})
166175
.collect();

0 commit comments

Comments
 (0)