Skip to content

Commit 4ea94f1

Browse files
committed
Merge #86: Add arbitrary and backport #5085
01cde71 Update API files (Nick Johnson) f1140f3 Add arbitrary and backport #5085 (Nick Johnson) Pull request description: ACKs for top commit: tcharding: ACK 01cde71 Tree-SHA512: 18d22aeb08841fd4f2270f2b72b0fb672759bb8eab5843932270eafaab259bf1174befd6236eefd3c35002a869abd12056735fabbba5ed4e5a8814b759efcc7b
2 parents 87ac403 + 01cde71 commit 4ea94f1

File tree

5 files changed

+37
-0
lines changed

5 files changed

+37
-0
lines changed

Cargo-minimal.lock

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ version = "1.0.86"
88
source = "registry+https://github.com/rust-lang/crates.io-index"
99
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
1010

11+
[[package]]
12+
name = "arbitrary"
13+
version = "1.0.1"
14+
source = "registry+https://github.com/rust-lang/crates.io-index"
15+
checksum = "237430fd6ed3740afe94eefcc278ae21e050285be882804e0d6e8695f0c94691"
16+
1117
[[package]]
1218
name = "arrayvec"
1319
version = "0.7.2"
@@ -186,6 +192,7 @@ name = "psbt-v2"
186192
version = "0.2.0"
187193
dependencies = [
188194
"anyhow",
195+
"arbitrary",
189196
"bitcoin",
190197
"miniscript",
191198
"serde",

Cargo-recent.lock

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ version = "1.0.86"
88
source = "registry+https://github.com/rust-lang/crates.io-index"
99
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
1010

11+
[[package]]
12+
name = "arbitrary"
13+
version = "1.4.2"
14+
source = "registry+https://github.com/rust-lang/crates.io-index"
15+
checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
16+
1117
[[package]]
1218
name = "arrayvec"
1319
version = "0.7.6"
@@ -189,6 +195,7 @@ name = "psbt-v2"
189195
version = "0.2.0"
190196
dependencies = [
191197
"anyhow",
198+
"arbitrary",
192199
"bitcoin",
193200
"miniscript",
194201
"serde",

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ silent-payments = [] # Silent Payments support
4141
[dependencies]
4242
bitcoin = { version = "0.32.8", default-features = false }
4343

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

api/all-features.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,8 @@ pub fn psbt_v2::v0::bitcoin::raw::Key::hash<__H: core::hash::Hasher>(&self, stat
263263
impl core::marker::StructuralPartialEq for psbt_v2::v0::bitcoin::raw::Key
264264
impl serde::ser::Serialize for psbt_v2::v0::bitcoin::raw::Key
265265
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
266+
impl<'a> arbitrary::Arbitrary<'a> for psbt_v2::v0::bitcoin::raw::Key
267+
pub fn psbt_v2::v0::bitcoin::raw::Key::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result<Self>
266268
impl<'de> serde::de::Deserialize<'de> for psbt_v2::v0::bitcoin::raw::Key
267269
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>
268270
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>
@@ -347,6 +349,8 @@ pub psbt_v2::v0::bitcoin::raw::ProprietaryKey::prefix: alloc::vec::Vec<u8>
347349
pub psbt_v2::v0::bitcoin::raw::ProprietaryKey::subtype: Subtype
348350
impl<Subtype> psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype> where Subtype: core::marker::Copy + core::convert::From<u8> + core::convert::Into<u8>
349351
pub fn psbt_v2::v0::bitcoin::raw::ProprietaryKey<Subtype>::to_key(&self) -> psbt_v2::v0::bitcoin::raw::Key
352+
impl<'a> arbitrary::Arbitrary<'a> for psbt_v2::v0::bitcoin::raw::ProprietaryKey
353+
pub fn psbt_v2::v0::bitcoin::raw::ProprietaryKey::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result<Self>
350354
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>
351355
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>
352356
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>

src/v0/bitcoin/raw.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,21 @@ where
196196
Ok(deserialize(&key.key)?)
197197
}
198198
}
199+
200+
#[cfg(feature = "arbitrary")]
201+
impl<'a> arbitrary::Arbitrary<'a> for ProprietaryKey {
202+
fn arbitrary(u: &mut arbitrary::Unstructured<'a>) -> arbitrary::Result<Self> {
203+
Ok(ProprietaryKey {
204+
prefix: Vec::<u8>::arbitrary(u)?,
205+
subtype: u8::arbitrary(u)?,
206+
key: Vec::<u8>::arbitrary(u)?,
207+
})
208+
}
209+
}
210+
211+
#[cfg(feature = "arbitrary")]
212+
impl<'a> arbitrary::Arbitrary<'a> for Key {
213+
fn arbitrary(u: &mut arbitrary::Unstructured<'a>) -> arbitrary::Result<Self> {
214+
Ok(Key { type_value: u.arbitrary()?, key: Vec::<u8>::arbitrary(u)? })
215+
}
216+
}

0 commit comments

Comments
 (0)