From d95eeda49fb8d0dd5e7dc33fbb575a8cf33275fb Mon Sep 17 00:00:00 2001 From: Lucas Soriano del Pino Date: Fri, 10 Sep 2021 10:27:41 +1000 Subject: [PATCH] Use iter::chain and iter::once Instead of `vec![vec![]].concat()`. --- cfd_protocol/src/lib.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/cfd_protocol/src/lib.rs b/cfd_protocol/src/lib.rs index e0e1f75..da0e2ca 100644 --- a/cfd_protocol/src/lib.rs +++ b/cfd_protocol/src/lib.rs @@ -852,22 +852,29 @@ fn lock_transaction( .filter(|out| { out.script_pubkey != DUMMY_2OF2_MULITISIG.parse().expect("To be a valid script") }) - .collect(); + .collect::>(); let lock_output = TxOut { value: amount.as_sat(), script_pubkey: lock_descriptor.script_pubkey(), }; + let input = vec![ + maker_psbt.global.unsigned_tx.input, + taker_psbt.global.unsigned_tx.input, + ] + .concat(); + + let output = std::iter::once(lock_output) + .chain(maker_change) + .chain(taker_change) + .collect(); + let lock_tx = Transaction { version: 2, lock_time: 0, - input: vec![ - maker_psbt.global.unsigned_tx.input, - taker_psbt.global.unsigned_tx.input, - ] - .concat(), - output: vec![vec![lock_output], maker_change, taker_change].concat(), + input, + output, }; PartiallySignedTransaction {