Skip to content

Commit 3cb833e

Browse files
committed
primitives - validator - NewState
- UncheckedState to CheckedState
1 parent bd2fec5 commit 3cb833e

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

primitives/src/balances.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,21 @@ pub enum Error {
100100
}
101101

102102
pub trait BalancesState: std::fmt::Debug + Eq + Clone + Serialize + DeserializeOwned {
103-
fn validate(balances: Balances<UncheckedState>) -> Result<Balances<Self>, Error>;
103+
fn from_unchecked(balances: Balances<UncheckedState>) -> Result<Balances<Self>, Error>;
104104
}
105105

106106
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
107107
pub struct CheckedState;
108108
impl BalancesState for CheckedState {
109-
fn validate(balances: Balances<UncheckedState>) -> Result<Balances<Self>, Error> {
109+
fn from_unchecked(balances: Balances<UncheckedState>) -> Result<Balances<Self>, Error> {
110110
balances.check()
111111
}
112112
}
113113

114114
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
115115
pub struct UncheckedState;
116116
impl BalancesState for UncheckedState {
117-
fn validate(balances: Balances<Self>) -> Result<Balances<Self>, Error> {
117+
fn from_unchecked(balances: Balances<Self>) -> Result<Balances<Self>, Error> {
118118
Ok(balances)
119119
}
120120
}
@@ -152,7 +152,7 @@ mod de {
152152
state: PhantomData::<UncheckedState>::default(),
153153
};
154154

155-
S::validate(unchecked_balances).map_err(serde::de::Error::custom)
155+
S::from_unchecked(unchecked_balances).map_err(serde::de::Error::custom)
156156
}
157157
}
158158

primitives/src/validator.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ pub mod messages {
136136
use std::{any::type_name, convert::TryFrom, fmt, marker::PhantomData};
137137
use thiserror::Error;
138138

139-
use crate::balances::{Balances, BalancesState, UncheckedState};
139+
use crate::balances::{Balances, BalancesState, CheckedState, UncheckedState};
140140
use chrono::{DateTime, Utc};
141141
use serde::{Deserialize, Serialize};
142142

@@ -199,7 +199,7 @@ pub mod messages {
199199
MessageTypes::RejectState(msg) => Err(MessageError::for_actual(&msg)),
200200
MessageTypes::Heartbeat(msg) => Err(MessageError::for_actual(&msg)),
201201
MessageTypes::NewState(new_state) => {
202-
let balances = S::validate(new_state.balances)?;
202+
let balances = S::from_unchecked(new_state.balances)?;
203203

204204
Ok(Self {
205205
state_root: new_state.state_root,
@@ -231,7 +231,7 @@ pub mod messages {
231231
MessageTypes::NewState(msg) => Err(MessageError::for_actual(&msg)),
232232
MessageTypes::Heartbeat(msg) => Err(MessageError::for_actual(&msg)),
233233
MessageTypes::RejectState(reject_state) => {
234-
let balances = reject_state.balances.map(S::validate).transpose()?;
234+
let balances = reject_state.balances.map(S::from_unchecked).transpose()?;
235235

236236
Ok(Self {
237237
reason: reject_state.reason,
@@ -296,6 +296,16 @@ pub mod messages {
296296
pub balances: Balances<S>,
297297
}
298298

299+
impl NewState<UncheckedState> {
300+
pub fn try_checked(self) -> Result<NewState<CheckedState>, crate::balances::Error> {
301+
Ok(NewState {
302+
state_root: self.state_root,
303+
signature: self.signature,
304+
balances: self.balances.check()?,
305+
})
306+
}
307+
}
308+
299309
#[derive(Default, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
300310
#[serde(rename_all = "camelCase")]
301311
pub struct RejectState<S: BalancesState> {

0 commit comments

Comments
 (0)