@@ -136,7 +136,7 @@ pub mod messages {
136
136
use std:: { any:: type_name, convert:: TryFrom , fmt, marker:: PhantomData } ;
137
137
use thiserror:: Error ;
138
138
139
- use crate :: balances:: { Balances , BalancesState , UncheckedState } ;
139
+ use crate :: balances:: { Balances , BalancesState , CheckedState , UncheckedState } ;
140
140
use chrono:: { DateTime , Utc } ;
141
141
use serde:: { Deserialize , Serialize } ;
142
142
@@ -199,7 +199,7 @@ pub mod messages {
199
199
MessageTypes :: RejectState ( msg) => Err ( MessageError :: for_actual ( & msg) ) ,
200
200
MessageTypes :: Heartbeat ( msg) => Err ( MessageError :: for_actual ( & msg) ) ,
201
201
MessageTypes :: NewState ( new_state) => {
202
- let balances = S :: validate ( new_state. balances ) ?;
202
+ let balances = S :: from_unchecked ( new_state. balances ) ?;
203
203
204
204
Ok ( Self {
205
205
state_root : new_state. state_root ,
@@ -231,7 +231,7 @@ pub mod messages {
231
231
MessageTypes :: NewState ( msg) => Err ( MessageError :: for_actual ( & msg) ) ,
232
232
MessageTypes :: Heartbeat ( msg) => Err ( MessageError :: for_actual ( & msg) ) ,
233
233
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 ( ) ?;
235
235
236
236
Ok ( Self {
237
237
reason : reject_state. reason ,
@@ -296,6 +296,16 @@ pub mod messages {
296
296
pub balances : Balances < S > ,
297
297
}
298
298
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
+
299
309
#[ derive( Default , Serialize , Deserialize , Debug , Clone , PartialEq , Eq ) ]
300
310
#[ serde( rename_all = "camelCase" ) ]
301
311
pub struct RejectState < S : BalancesState > {
0 commit comments