Skip to content

Commit ecfc231

Browse files
committed
Merge #178: pset: fix remove_output
06d7f90 pset: tests: add coverage for remove_input/output (Leonardo Comandini) 3674c17 pset: fix remove_output (Leonardo Comandini) Pull request description: ACKs for top commit: RCasatta: utACK 06d7f90 Tree-SHA512: 35313fb45267d0c067efbd60af86f588b11d99275f50f7392b16a5845cb8de68950d24e034c576fe0a2f45cd3ea24ee5a44cecb4b8816f7fb04f4eaefddf11dc
2 parents 5d80b94 + 06d7f90 commit ecfc231

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/pset/mod.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ impl PartiallySignedTransaction {
178178
/// Remove the output at `index` and return it if any, otherwise returns None
179179
/// This also updates the pset global output count
180180
pub fn remove_output(&mut self, index: usize) -> Option<Output> {
181-
if self.inputs.get(index).is_some() {
181+
if self.outputs.get(index).is_some() {
182182
self.global.tx_data.output_count -= 1;
183183
return Some(self.outputs.remove(index));
184184
}
@@ -955,4 +955,19 @@ mod tests {
955955
let pset = encode::deserialize::<PartiallySignedTransaction>(&bytes).unwrap();
956956
assert_eq!(&back_hex, &encode::serialize(&pset).to_hex());
957957
}
958+
959+
#[test]
960+
fn pset_remove_in_out() {
961+
let pset_str = include_str!("../../tests/data/pset_swap_tutorial.hex");
962+
963+
let bytes = Vec::<u8>::from_hex(pset_str).unwrap();
964+
let mut pset = encode::deserialize::<PartiallySignedTransaction>(&bytes).unwrap();
965+
966+
let n_inputs = pset.n_inputs();
967+
let n_outputs = pset.n_outputs();
968+
pset.remove_input(n_inputs - 1).unwrap();
969+
pset.remove_output(n_outputs - 1).unwrap();
970+
assert_eq!(pset.n_inputs(), n_inputs - 1);
971+
assert_eq!(pset.n_outputs(), n_outputs - 1);
972+
}
958973
}

0 commit comments

Comments
 (0)