File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed
primitives/share-pool/src Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 63
63
. saturating_to_num :: < u64 > ( )
64
64
}
65
65
66
+ pub fn get_value_from_shares ( & self , current_share : U64F64 ) -> u64 {
67
+ let shared_value: U64F64 = self . state_ops . get_shared_value ( ) ;
68
+ let denominator: U64F64 = self . state_ops . get_denominator ( ) ;
69
+
70
+ let maybe_value_per_share = shared_value. checked_div ( denominator) ;
71
+ ( if let Some ( value_per_share) = maybe_value_per_share {
72
+ value_per_share. saturating_mul ( current_share)
73
+ } else {
74
+ shared_value
75
+ . saturating_mul ( current_share)
76
+ . checked_div ( denominator)
77
+ . unwrap_or ( U64F64 :: saturating_from_num ( 0 ) )
78
+ } )
79
+ . saturating_to_num :: < u64 > ( )
80
+ }
81
+
66
82
pub fn try_get_value ( & self , key : & K ) -> Result < u64 , ( ) > {
67
83
match self . state_ops . try_get_share ( key) {
68
84
Ok ( _) => Ok ( self . get_value ( key) ) ,
You can’t perform that action at this time.
0 commit comments