From 112169cbae51dbee0ff43d7a618727046b895e37 Mon Sep 17 00:00:00 2001 From: Tobin Harding Date: Wed, 5 Jan 2022 14:37:39 +1100 Subject: [PATCH] Remove insert_pair from Map trait The method implementation of `insert_pair` is currently not used for `PartiallySignedTransaction`. Having an implementation available is deceiving. Delete the unused `insert_pair` code from `PartiallySignedTransaction` (dead code). Make the `insert_pair` methods from `Input` and `Output` be standalone functions. --- src/util/psbt/macros.rs | 2 +- src/util/psbt/map/global.rs | 28 ---------------------------- src/util/psbt/map/input.rs | 6 ++++-- src/util/psbt/map/mod.rs | 3 --- src/util/psbt/map/output.rs | 6 ++++-- 5 files changed, 9 insertions(+), 36 deletions(-) diff --git a/src/util/psbt/macros.rs b/src/util/psbt/macros.rs index 4ccf31e27b..aeedcdec24 100644 --- a/src/util/psbt/macros.rs +++ b/src/util/psbt/macros.rs @@ -75,7 +75,7 @@ macro_rules! impl_psbtmap_consensus_decoding { loop { match $crate::consensus::Decodable::consensus_decode(&mut d) { - Ok(pair) => $crate::util::psbt::Map::insert_pair(&mut rv, pair)?, + Ok(pair) => rv.insert_pair(pair)?, Err($crate::consensus::encode::Error::Psbt($crate::util::psbt::Error::NoMorePairs)) => return Ok(rv), Err(e) => return Err(e), } diff --git a/src/util/psbt/map/global.rs b/src/util/psbt/map/global.rs index 965ec16cff..4d1ec59d66 100644 --- a/src/util/psbt/map/global.rs +++ b/src/util/psbt/map/global.rs @@ -37,34 +37,6 @@ const PSBT_GLOBAL_VERSION: u8 = 0xFB; const PSBT_GLOBAL_PROPRIETARY: u8 = 0xFC; impl Map for PartiallySignedTransaction { - fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error> { - let raw::Pair { - key: raw_key, - value: raw_value, - } = pair; - - match raw_key.type_value { - PSBT_GLOBAL_UNSIGNED_TX => return Err(Error::DuplicateKey(raw_key).into()), - PSBT_GLOBAL_PROPRIETARY => { - let key = raw::ProprietaryKey::from_key(raw_key.clone())?; - match self.proprietary.entry(key) { - btree_map::Entry::Vacant(empty_key) => { - empty_key.insert(raw_value); - }, - btree_map::Entry::Occupied(_) => return Err(Error::DuplicateKey(raw_key).into()), - } - } - _ => match self.unknown.entry(raw_key) { - btree_map::Entry::Vacant(empty_key) => { - empty_key.insert(raw_value); - }, - btree_map::Entry::Occupied(k) => return Err(Error::DuplicateKey(k.key().clone()).into()), - } - } - - Ok(()) - } - fn get_pairs(&self) -> Result, io::Error> { let mut rv: Vec = Default::default(); diff --git a/src/util/psbt/map/input.rs b/src/util/psbt/map/input.rs index 45222b5934..08530dd5e9 100644 --- a/src/util/psbt/map/input.rs +++ b/src/util/psbt/map/input.rs @@ -189,8 +189,8 @@ impl PsbtSigHashType { } } -impl Map for Input { - fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error> { +impl Input { + pub(super) fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error> { let raw::Pair { key: raw_key, value: raw_value, @@ -303,7 +303,9 @@ impl Map for Input { Ok(()) } +} +impl Map for Input { fn get_pairs(&self) -> Result, io::Error> { let mut rv: Vec = Default::default(); diff --git a/src/util/psbt/map/mod.rs b/src/util/psbt/map/mod.rs index e3664978ad..5e190737ac 100644 --- a/src/util/psbt/map/mod.rs +++ b/src/util/psbt/map/mod.rs @@ -29,9 +29,6 @@ pub use self::output::{Output, TapTree}; /// A trait that describes a PSBT key-value map. pub(super) trait Map { - /// Attempt to insert a key-value pair. - fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error>; - /// Attempt to get all key-value pairs. fn get_pairs(&self) -> Result, io::Error>; diff --git a/src/util/psbt/map/output.rs b/src/util/psbt/map/output.rs index e45658161a..f33e58d089 100644 --- a/src/util/psbt/map/output.rs +++ b/src/util/psbt/map/output.rs @@ -120,8 +120,8 @@ impl TapTree { } } -impl Map for Output { - fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error> { +impl Output { + pub(super) fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error> { let raw::Pair { key: raw_key, value: raw_value, @@ -177,7 +177,9 @@ impl Map for Output { Ok(()) } +} +impl Map for Output { fn get_pairs(&self) -> Result, io::Error> { let mut rv: Vec = Default::default();