@@ -256,15 +256,29 @@ pub enum CalculateFeeError {
256256impl fmt:: Display for CalculateFeeError {
257257 fn fmt ( & self , f : & mut Formatter < ' _ > ) -> fmt:: Result {
258258 match self {
259- CalculateFeeError :: MissingTxOut ( outpoints) => write ! (
260- f,
261- "missing `TxOut` for one or more of the inputs of the tx: {outpoints:?}" ,
262- ) ,
263- CalculateFeeError :: NegativeFee ( fee) => write ! (
264- f,
265- "transaction is invalid according to the graph and has negative fee: {}" ,
266- fee. display_dynamic( )
267- ) ,
259+ CalculateFeeError :: MissingTxOut ( outpoints) => {
260+ let max_show = 3 ;
261+ let shown: Vec < _ > = outpoints. iter ( ) . take ( max_show) . collect ( ) ;
262+ let remaining = outpoints. len ( ) . saturating_sub ( max_show) ;
263+
264+ writeln ! ( f, " missing `TxOut` for input(s)" ) ?;
265+ if outpoints. is_empty ( ) {
266+ write ! ( f, "<none>" )
267+ } else {
268+ writeln ! ( f, "{}" , shown[ 0 ] ) ?;
269+ for op in & shown[ 1 ..] {
270+ writeln ! ( f, "{}" , op) ?;
271+ }
272+ if remaining > 0 {
273+ write ! ( f, "(+{} more)" , remaining) ?;
274+ }
275+ Ok ( ( ) )
276+ }
277+ }
278+ CalculateFeeError :: NegativeFee ( fee) => {
279+ writeln ! ( f, " invalid transaction: negative fee" ) ?;
280+ write ! ( f, "fee: {}" , fee. display_dynamic( ) )
281+ }
268282 }
269283 }
270284}
0 commit comments