@@ -17,7 +17,7 @@ use log::{debug, error, info, trace, warn};
1717
1818use bitcoin:: consensus:: encode:: deserialize;
1919use bitcoin:: hex:: { DisplayHex , FromHex } ;
20- use bitcoin:: { Script , Txid } ;
20+ use bitcoin:: { Amount , Script , Txid } ;
2121
2222#[ cfg( feature = "use-openssl" ) ]
2323use openssl:: ssl:: { SslConnector , SslMethod , SslStream , SslVerifyMode } ;
@@ -879,17 +879,18 @@ impl<T: Read + Write> ElectrumApi for RawClient<T> {
879879 . ok_or_else ( || Error :: InvalidResponse ( result. clone ( ) ) )
880880 }
881881
882- fn relay_fee ( & self ) -> Result < f64 , Error > {
882+ fn relay_fee ( & self ) -> Result < Amount , Error > {
883883 let req = Request :: new_id (
884884 self . last_id . fetch_add ( 1 , Ordering :: SeqCst ) ,
885885 "blockchain.relayfee" ,
886886 vec ! [ ] ,
887887 ) ;
888888 let result = self . call ( req) ?;
889889
890- result
890+ let amount_float = result
891891 . as_f64 ( )
892- . ok_or_else ( || Error :: InvalidResponse ( result. clone ( ) ) )
892+ . ok_or_else ( || Error :: InvalidResponse ( result. clone ( ) ) ) ?;
893+ Amount :: from_btc ( amount_float) . map_err ( |_| Error :: InvalidResponse ( result. clone ( ) ) )
893894 }
894895
895896 fn script_subscribe ( & self , script : & Script ) -> Result < Option < ScriptStatus > , Error > {
@@ -1195,7 +1196,7 @@ mod test {
11951196 let client = RawClient :: new ( get_test_server ( ) , None ) . unwrap ( ) ;
11961197
11971198 let resp = client. relay_fee ( ) . unwrap ( ) ;
1198- assert_eq ! ( resp, 0.00001 ) ;
1199+ assert_eq ! ( resp, bitcoin :: Amount :: from_btc ( 0.00001 ) . unwrap ( ) ) ;
11991200 }
12001201
12011202 #[ test]
0 commit comments