Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Cargo-minimal.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"

[[package]]
name = "arbitrary"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "237430fd6ed3740afe94eefcc278ae21e050285be882804e0d6e8695f0c94691"

[[package]]
name = "arrayvec"
version = "0.7.2"
Expand Down Expand Up @@ -186,6 +192,7 @@ name = "psbt-v2"
version = "0.2.0"
dependencies = [
"anyhow",
"arbitrary",
"bitcoin",
"miniscript",
"serde",
Expand Down
7 changes: 7 additions & 0 deletions Cargo-recent.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"

[[package]]
name = "arbitrary"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"

[[package]]
name = "arrayvec"
version = "0.7.6"
Expand Down Expand Up @@ -189,6 +195,7 @@ name = "psbt-v2"
version = "0.2.0"
dependencies = [
"anyhow",
"arbitrary",
"bitcoin",
"miniscript",
"serde",
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ silent-payments = [] # Silent Payments support
[dependencies]
bitcoin = { version = "0.32.8", default-features = false }

arbitrary = { version = "1.0.1", optional = true }
miniscript = { version = "12.3.5", default-features = false, optional = true }
serde = { version = "1.0.195", default-features = false, features = ["derive", "alloc"], optional = true }

Expand Down
4 changes: 4 additions & 0 deletions api/all-features.txt
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,8 @@ pub fn psbt_v2::v0::bitcoin::raw::Key::hash<__H: core::hash::Hasher>(&self, stat
impl core::marker::StructuralPartialEq for psbt_v2::v0::bitcoin::raw::Key
impl serde::ser::Serialize for psbt_v2::v0::bitcoin::raw::Key
pub fn psbt_v2::v0::bitcoin::raw::Key::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer
impl<'a> arbitrary::Arbitrary<'a> for psbt_v2::v0::bitcoin::raw::Key
pub fn psbt_v2::v0::bitcoin::raw::Key::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result<Self>
impl<'de> serde::de::Deserialize<'de> for psbt_v2::v0::bitcoin::raw::Key
pub fn psbt_v2::v0::bitcoin::raw::Key::deserialize<__D>(__deserializer: __D) -> core::result::Result<Self, <__D as serde::de::Deserializer>::Error> where __D: serde::de::Deserializer<'de>
impl<Subtype> core::convert::TryFrom<psbt_v2::v0::bitcoin::raw::Key> for psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype> where Subtype: core::marker::Copy + core::convert::From<u8> + core::convert::Into<u8>
Expand Down Expand Up @@ -347,6 +349,8 @@ pub psbt_v2::v0::bitcoin::raw::ProprietaryKey::prefix: alloc::vec::Vec<u8>
pub psbt_v2::v0::bitcoin::raw::ProprietaryKey::subtype: Subtype
impl<Subtype> psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype> where Subtype: core::marker::Copy + core::convert::From<u8> + core::convert::Into<u8>
pub fn psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype>::to_key(&self) -> psbt_v2::v0::bitcoin::raw::Key
impl<'a> arbitrary::Arbitrary<'a> for psbt_v2::v0::bitcoin::raw::ProprietaryKey
pub fn psbt_v2::v0::bitcoin::raw::ProprietaryKey::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result<Self>
impl<'de, Subtype> serde::de::Deserialize<'de> for psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype> where Subtype: core::marker::Copy + core::convert::From<u8> + core::convert::Into<u8> + serde::de::Deserialize<'de>
pub fn psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype>::deserialize<__D>(__deserializer: __D) -> core::result::Result<Self, <__D as serde::de::Deserializer>::Error> where __D: serde::de::Deserializer<'de>
impl<Subtype> bitcoin::consensus::encode::Decodable for psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype> where Subtype: core::marker::Copy + core::convert::From<u8> + core::convert::Into<u8>
Expand Down
18 changes: 18 additions & 0 deletions src/v0/bitcoin/raw.rs
Original file line number Diff line number Diff line change
Expand Up @@ -196,3 +196,21 @@ where
Ok(deserialize(&key.key)?)
}
}

#[cfg(feature = "arbitrary")]
impl<'a> arbitrary::Arbitrary<'a> for ProprietaryKey {
fn arbitrary(u: &mut arbitrary::Unstructured<'a>) -> arbitrary::Result<Self> {
Ok(ProprietaryKey {
prefix: Vec::<u8>::arbitrary(u)?,
subtype: u8::arbitrary(u)?,
key: Vec::<u8>::arbitrary(u)?,
})
}
}

#[cfg(feature = "arbitrary")]
impl<'a> arbitrary::Arbitrary<'a> for Key {
fn arbitrary(u: &mut arbitrary::Unstructured<'a>) -> arbitrary::Result<Self> {
Ok(Key { type_value: u.arbitrary()?, key: Vec::<u8>::arbitrary(u)? })
}
}