File tree Expand file tree Collapse file tree 3 files changed +17
-16
lines changed Expand file tree Collapse file tree 3 files changed +17
-16
lines changed Original file line number Diff line number Diff line change @@ -99,18 +99,14 @@ impl AsyncClient {
9999 }
100100
101101 /// Get the status of a [`Transaction`] given its [`Txid`].
102- pub async fn get_tx_status ( & self , txid : & Txid ) -> Result < Option < TxStatus > , Error > {
102+ pub async fn get_tx_status ( & self , txid : & Txid ) -> Result < TxStatus , Error > {
103103 let resp = self
104104 . client
105105 . get ( & format ! ( "{}/tx/{}/status" , self . url, txid) )
106106 . send ( )
107107 . await ?;
108108
109- if let StatusCode :: NOT_FOUND = resp. status ( ) {
110- return Ok ( None ) ;
111- }
112-
113- Ok ( Some ( resp. error_for_status ( ) ?. json ( ) . await ?) )
109+ Ok ( resp. error_for_status ( ) ?. json ( ) . await ?)
114110 }
115111
116112 #[ deprecated(
Original file line number Diff line number Diff line change @@ -108,20 +108,15 @@ impl BlockingClient {
108108 }
109109
110110 /// Get the status of a [`Transaction`] given its [`Txid`].
111- pub fn get_tx_status ( & self , txid : & Txid ) -> Result < Option < TxStatus > , Error > {
111+ pub fn get_tx_status ( & self , txid : & Txid ) -> Result < TxStatus , Error > {
112112 let resp = self
113113 . agent
114114 . get ( & format ! ( "{}/tx/{}/status" , self . url, txid) )
115115 . call ( ) ;
116116
117117 match resp {
118- Ok ( resp) => Ok ( Some ( resp. into_json ( ) ?) ) ,
119- Err ( ureq:: Error :: Status ( code, _) ) => {
120- if is_status_not_found ( code) {
121- return Ok ( None ) ;
122- }
123- Err ( Error :: HttpResponse ( code) )
124- }
118+ Ok ( resp) => Ok ( resp. into_json ( ) ?) ,
119+ Err ( ureq:: Error :: Status ( code, _) ) => Err ( Error :: HttpResponse ( code) ) ,
125120 Err ( e) => Err ( Error :: Ureq ( e) ) ,
126121 }
127122 }
Original file line number Diff line number Diff line change @@ -460,10 +460,20 @@ mod test {
460460 let _miner = MINER . lock ( ) . await ;
461461 generate_blocks_and_wait ( 1 ) ;
462462
463- let tx_status = blocking_client. get_tx_status ( & txid) . unwrap ( ) . unwrap ( ) ;
464- let tx_status_async = async_client. get_tx_status ( & txid) . await . unwrap ( ) . unwrap ( ) ;
463+ let tx_status = blocking_client. get_tx_status ( & txid) . unwrap ( ) ;
464+ let tx_status_async = async_client. get_tx_status ( & txid) . await . unwrap ( ) ;
465465 assert_eq ! ( tx_status, tx_status_async) ;
466466 assert ! ( tx_status. confirmed) ;
467+
468+ // Bogus txid returns a TxStatus with false, None, None, None
469+ let txid = Txid :: hash ( b"ayyyy lmao" ) ;
470+ let tx_status = blocking_client. get_tx_status ( & txid) . unwrap ( ) ;
471+ let tx_status_async = async_client. get_tx_status ( & txid) . await . unwrap ( ) ;
472+ assert_eq ! ( tx_status, tx_status_async) ;
473+ assert ! ( !tx_status. confirmed) ;
474+ assert ! ( tx_status. block_height. is_none( ) ) ;
475+ assert ! ( tx_status. block_hash. is_none( ) ) ;
476+ assert ! ( tx_status. block_time. is_none( ) ) ;
467477 }
468478
469479 #[ cfg( all( feature = "blocking" , feature = "async" ) ) ]
You can’t perform that action at this time.
0 commit comments