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();