@@ -86,6 +86,7 @@ pub(crate) enum BlindedPaymentTlvs {
8686}
8787
8888// Used to include forward and receive TLVs in the same iterator for encoding.
89+ #[ derive( Clone ) ]
8990enum BlindedPaymentTlvsRef < ' a > {
9091 Forward ( & ' a ForwardTlvs ) ,
9192 Receive ( & ' a ReceiveTlvs ) ,
@@ -288,16 +289,15 @@ pub(super) fn blinded_hops<T: secp256k1::Signing + secp256k1::Verification>(
288289) -> Result < Vec < BlindedHop > , secp256k1:: Error > {
289290 let pks = intermediate_nodes. iter ( ) . map ( |node| & node. node_id )
290291 . chain ( core:: iter:: once ( & payee_node_id) ) ;
291- let tlvs: Vec < BlindedPaymentTlvsRef > = intermediate_nodes. iter ( ) . map ( |node| BlindedPaymentTlvsRef :: Forward ( & node. tlvs ) )
292- . chain ( core:: iter:: once ( BlindedPaymentTlvsRef :: Receive ( & payee_tlvs) ) )
293- . collect ( ) ;
292+ let tlvs = intermediate_nodes. iter ( ) . map ( |node| BlindedPaymentTlvsRef :: Forward ( & node. tlvs ) )
293+ . chain ( core:: iter:: once ( BlindedPaymentTlvsRef :: Receive ( & payee_tlvs) ) ) ;
294294
295- let max_length = tlvs. iter ( )
295+ let max_length = tlvs. clone ( )
296296 . max_by_key ( |c| c. serialized_length ( ) )
297297 . map ( |c| c. serialized_length ( ) )
298298 . unwrap_or ( 0 ) ;
299299
300- let length_tlvs = tlvs. into_iter ( ) . map ( move |tlv| ( max_length, tlv) ) ;
300+ let length_tlvs = tlvs. map ( |tlv| ( max_length, tlv) ) ;
301301
302302 utils:: construct_blinded_hops ( secp_ctx, pks, length_tlvs, session_priv)
303303}
0 commit comments