1
1
use chrono:: { DateTime , Utc } ;
2
2
use ethers:: prelude:: LogMeta ;
3
- use evm:: { address:: Address , txhash:: TxHash } ;
4
- use fraction:: { num_traits:: One , Fraction } ;
5
- use num_bigint:: BigInt ;
3
+ use evm:: { address:: Address , txhash:: TxHash , confirmations_counter:: Confirmations } ;
4
+ use fraction:: Fraction ;
6
5
use num_traits:: Zero ;
7
6
use serde:: { Deserialize , Serialize } ;
8
7
use sqlx:: { Postgres , Transaction } ;
@@ -15,7 +14,7 @@ use crate::{
15
14
database:: managers:: { assets:: AssetsManager , users:: UsersManager , valuts:: ValutsManager } ,
16
15
engine_base,
17
16
} ;
18
- #[ derive( Debug , Serialize , Deserialize , Clone , PartialEq , Eq , Hash ) ]
17
+ #[ derive( Debug , Serialize , Deserialize , Clone , Hash ) ]
19
18
pub struct Deposit {
20
19
pub id : Uuid ,
21
20
pub created_at : DateTime < Utc > ,
@@ -25,7 +24,7 @@ pub struct Deposit {
25
24
pub asset : Address ,
26
25
pub amount : Fraction ,
27
26
pub tx_hash : TxHash ,
28
- pub confirmations : Fraction ,
27
+ pub confirmations : Confirmations ,
29
28
}
30
29
31
30
impl Deposit {
@@ -56,12 +55,12 @@ impl Deposit {
56
55
}
57
56
58
57
impl Confirmable for Deposit {
59
- fn set ( & mut self , confirmations : BigInt ) {
60
- let ( _ , denom ) = self . confirmations . 0 . clone ( ) . into ( ) ;
61
- self . confirmations = Fraction :: from_raw ( ( confirmations , denom ) ) . unwrap_or_default ( )
58
+ fn set ( & mut self , actual : u64 ) {
59
+ let desired = self . confirmations . desired ( ) ;
60
+ self . confirmations = Confirmations :: from_raw ( actual , desired ) ;
62
61
}
63
62
fn is_confirmed ( & self ) -> bool {
64
- self . confirmations >= Fraction :: one ( )
63
+ self . confirmations . actual ( ) >= self . confirmations . desired ( )
65
64
}
66
65
}
67
66
0 commit comments