Skip to content

Commit a170bb4

Browse files
committed
Add actual-arbitrary dependency
The actual-arbitrary dependency groups two features, arbitrary and units/arbitrary in the bitcoin crate. Similar functionality can be achieved using the `dep:` syntax, however that violates the crates current MSRV.
1 parent 241618a commit a170bb4

13 files changed

Lines changed: 46 additions & 46 deletions

File tree

bitcoin/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ serde = ["actual-serde", "hashes/serde", "secp256k1/serde", "internals/serde", "
2222
secp-lowmemory = ["secp256k1/lowmemory"]
2323
secp-recovery = ["secp256k1/recovery"]
2424
bitcoinconsensus-std = ["bitcoinconsensus/std", "std"]
25-
arbitrary-units = ["units/arbitrary"]
25+
arbitrary = ["actual-arbitrary", "units/arbitrary"]
2626

2727
[package.metadata.docs.rs]
2828
all-features = true
@@ -37,7 +37,7 @@ hex_lit = "0.1.1"
3737
internals = { package = "bitcoin-internals", version = "0.3.0", features = ["alloc"] }
3838
io = { package = "bitcoin-io", version = "0.1.1", default-features = false, features = ["alloc"] }
3939
secp256k1 = { version = "0.29.0", default-features = false, features = ["hashes", "alloc"] }
40-
units = { package = "bitcoin-units", path = "../units", default-features = false, features = ["alloc"] }
40+
units = { package = "bitcoin-units", version = "0.1.0", default-features = false, features = ["alloc"] }
4141

4242
base64 = { version = "0.21.3", optional = true }
4343
ordered = { version = "0.2.0", optional = true }

bitcoin/src/bip152.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use core::{convert, fmt, mem};
1010
use std::error;
1111

1212
#[cfg(feature = "arbitrary")]
13-
use arbitrary::{Arbitrary, Unstructured};
13+
use actual_arbitrary::{Arbitrary, Unstructured};
1414
use hashes::{sha256, siphash24, Hash};
1515
use internals::impl_array_newtype;
1616
use io::{Read, Write};
@@ -376,7 +376,7 @@ impl BlockTransactions {
376376

377377
#[cfg(feature = "arbitrary")]
378378
impl<'a> Arbitrary<'a> for BlockTransactions {
379-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
379+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
380380
Ok(BlockTransactions {
381381
block_hash: u.arbitrary()?,
382382
transactions: Vec::<Transaction>::arbitrary(u)?,
@@ -386,7 +386,7 @@ impl<'a> Arbitrary<'a> for BlockTransactions {
386386

387387
#[cfg(feature = "arbitrary")]
388388
impl<'a> Arbitrary<'a> for BlockTransactionsRequest {
389-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
389+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
390390
Ok(BlockTransactionsRequest {
391391
block_hash: u.arbitrary()?,
392392
indexes: Vec::<u64>::arbitrary(u)?,
@@ -396,7 +396,7 @@ impl<'a> Arbitrary<'a> for BlockTransactionsRequest {
396396

397397
#[cfg(feature = "arbitrary")]
398398
impl<'a> Arbitrary<'a> for HeaderAndShortIds {
399-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
399+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
400400
Ok(HeaderAndShortIds {
401401
header: u.arbitrary()?,
402402
nonce: u.arbitrary()?,
@@ -408,14 +408,14 @@ impl<'a> Arbitrary<'a> for HeaderAndShortIds {
408408

409409
#[cfg(feature = "arbitrary")]
410410
impl<'a> Arbitrary<'a> for PrefilledTransaction {
411-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
411+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
412412
Ok(PrefilledTransaction { idx: u.arbitrary()?, tx: u.arbitrary()? })
413413
}
414414
}
415415

416416
#[cfg(feature = "arbitrary")]
417417
impl<'a> Arbitrary<'a> for ShortId {
418-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
418+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
419419
Ok(ShortId(u.arbitrary()?))
420420
}
421421
}

bitcoin/src/bip158.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use core::cmp::{self, Ordering};
4242
use core::fmt::{self, Display, Formatter};
4343

4444
#[cfg(feature = "arbitrary")]
45-
use arbitrary::{Arbitrary, Unstructured};
45+
use actual_arbitrary::{Arbitrary, Unstructured};
4646
use hashes::{sha256d, siphash24, Hash};
4747
use internals::write_err;
4848
use io::{Read, Write};
@@ -563,14 +563,14 @@ impl<'a, W: Write> BitStreamWriter<'a, W> {
563563

564564
#[cfg(feature = "arbitrary")]
565565
impl<'a> Arbitrary<'a> for FilterHash {
566-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
566+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
567567
Ok(FilterHash::from_byte_array(u.arbitrary()?))
568568
}
569569
}
570570

571571
#[cfg(feature = "arbitrary")]
572572
impl<'a> Arbitrary<'a> for FilterHeader {
573-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
573+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
574574
Ok(FilterHeader::from_byte_array(u.arbitrary()?))
575575
}
576576
}

bitcoin/src/blockdata/block.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use core::fmt;
1212

1313
#[cfg(feature = "arbitrary")]
14-
use arbitrary::{Arbitrary, Unstructured};
14+
use actual_arbitrary::{Arbitrary, Unstructured};
1515
use hashes::{sha256d, Hash, HashEngine};
1616
use io::{Read, Write};
1717

@@ -488,21 +488,21 @@ impl std::error::Error for ValidationError {
488488

489489
#[cfg(feature = "arbitrary")]
490490
impl<'a> Arbitrary<'a> for Block {
491-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
491+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
492492
Ok(Block { header: Header::arbitrary(u)?, txdata: Vec::<Transaction>::arbitrary(u)? })
493493
}
494494
}
495495

496496
#[cfg(feature = "arbitrary")]
497497
impl<'a> Arbitrary<'a> for BlockHash {
498-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
498+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
499499
Ok(BlockHash::from_byte_array(u.arbitrary()?))
500500
}
501501
}
502502

503503
#[cfg(feature = "arbitrary")]
504504
impl<'a> Arbitrary<'a> for Header {
505-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
505+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
506506
Ok(Header {
507507
version: Version::arbitrary(u)?,
508508
prev_blockhash: BlockHash::from_byte_array(u.arbitrary()?),
@@ -516,7 +516,7 @@ impl<'a> Arbitrary<'a> for Header {
516516

517517
#[cfg(feature = "arbitrary")]
518518
impl<'a> Arbitrary<'a> for Version {
519-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
519+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
520520
// Equally weight known versions and arbitrary versions
521521
let choice = u.int_in_range(0..=3)?;
522522
match choice {

bitcoin/src/blockdata/locktime/absolute.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use core::fmt;
1111
use core::str::FromStr;
1212

1313
#[cfg(feature = "arbitrary")]
14-
use arbitrary::{Arbitrary, Unstructured};
14+
use actual_arbitrary::{Arbitrary, Unstructured};
1515
use io::{Read, Write};
1616
#[cfg(all(test, mutate))]
1717
use mutagen::mutate;
@@ -438,7 +438,7 @@ impl ordered::ArbitraryOrd for LockTime {
438438

439439
#[cfg(feature = "arbitrary")]
440440
impl<'a> Arbitrary<'a> for LockTime {
441-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
441+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
442442
let l = u32::arbitrary(u)?;
443443
Ok(LockTime::from_consensus(l))
444444
}

bitcoin/src/blockdata/script/owned.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use core::ops::Deref;
55

66
#[cfg(feature = "arbitrary")]
7-
use arbitrary::{Arbitrary, Unstructured};
7+
use actual_arbitrary::{Arbitrary, Unstructured};
88
use hex::FromHex;
99
use secp256k1::{Secp256k1, Verification};
1010

@@ -362,7 +362,7 @@ impl<'a> Extend<Instruction<'a>> for ScriptBuf {
362362

363363
#[cfg(feature = "arbitrary")]
364364
impl<'a> Arbitrary<'a> for ScriptBuf {
365-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
365+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
366366
let v = Vec::<u8>::arbitrary(u)?;
367367
Ok(ScriptBuf(v))
368368
}

bitcoin/src/blockdata/transaction.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ use crate::{Amount, SignedAmount, VarInt};
3939
pub use crate::consensus::validation::TxVerifyError;
4040

4141
#[cfg(feature = "arbitrary")]
42-
use arbitrary::{Arbitrary, Unstructured};
42+
use actual_arbitrary::{Arbitrary, Unstructured};
4343

4444
hashes::hash_newtype! {
4545
/// A bitcoin transaction hash/transaction ID.
@@ -1650,7 +1650,7 @@ impl InputWeightPrediction {
16501650

16511651
#[cfg(feature = "arbitrary")]
16521652
impl<'a> Arbitrary<'a> for InputWeightPrediction {
1653-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1653+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
16541654
// limit script size to 4Mwu block size.
16551655
let max_block = Weight::MAX_BLOCK.to_wu() as usize;
16561656
let input_script_len = u.int_in_range(0..=max_block)?;
@@ -1681,14 +1681,14 @@ impl<'a> Arbitrary<'a> for InputWeightPrediction {
16811681

16821682
#[cfg(feature = "arbitrary")]
16831683
impl<'a> Arbitrary<'a> for OutPoint {
1684-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1684+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
16851685
Ok(OutPoint { txid: Txid::arbitrary(u)?, vout: u32::arbitrary(u)? })
16861686
}
16871687
}
16881688

16891689
#[cfg(feature = "arbitrary")]
16901690
impl<'a> Arbitrary<'a> for Sequence {
1691-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1691+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
16921692
let choice_range = 8;
16931693

16941694
// Equally weight the cases of meaningful sequence numbers
@@ -1709,7 +1709,7 @@ impl<'a> Arbitrary<'a> for Sequence {
17091709

17101710
#[cfg(feature = "arbitrary")]
17111711
impl<'a> Arbitrary<'a> for Transaction {
1712-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1712+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
17131713
use absolute::LockTime;
17141714

17151715
Ok(Transaction {
@@ -1723,7 +1723,7 @@ impl<'a> Arbitrary<'a> for Transaction {
17231723

17241724
#[cfg(feature = "arbitrary")]
17251725
impl<'a> Arbitrary<'a> for TxIn {
1726-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1726+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
17271727
Ok(TxIn {
17281728
previous_output: OutPoint::arbitrary(u)?,
17291729
script_sig: ScriptBuf::arbitrary(u)?,
@@ -1735,7 +1735,7 @@ impl<'a> Arbitrary<'a> for TxIn {
17351735

17361736
#[cfg(feature = "arbitrary")]
17371737
impl<'a> Arbitrary<'a> for Txid {
1738-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1738+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
17391739
let arbitrary_bytes = u.arbitrary()?;
17401740
let t = sha256d::Hash::from_byte_array(arbitrary_bytes);
17411741
Ok(Txid(t))
@@ -1744,14 +1744,14 @@ impl<'a> Arbitrary<'a> for Txid {
17441744

17451745
#[cfg(feature = "arbitrary")]
17461746
impl<'a> Arbitrary<'a> for TxOut {
1747-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1747+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
17481748
Ok(TxOut { value: Amount::arbitrary(u)?, script_pubkey: ScriptBuf::arbitrary(u)? })
17491749
}
17501750
}
17511751

17521752
#[cfg(feature = "arbitrary")]
17531753
impl<'a> Arbitrary<'a> for Version {
1754-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1754+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
17551755
// Equally weight the case of normal version numbers
17561756
let choice = u.int_in_range(0..=2)?;
17571757
match choice {
@@ -1764,7 +1764,7 @@ impl<'a> Arbitrary<'a> for Version {
17641764

17651765
#[cfg(feature = "arbitrary")]
17661766
impl<'a> Arbitrary<'a> for Wtxid {
1767-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1767+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
17681768
Ok(Wtxid::from_byte_array(u.arbitrary()?))
17691769
}
17701770
}

bitcoin/src/blockdata/witness.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use core::fmt;
99
use core::ops::Index;
1010

1111
#[cfg(feature = "arbitrary")]
12-
use arbitrary::{Arbitrary, Unstructured};
12+
use actual_arbitrary::{Arbitrary, Unstructured};
1313
use io::{Read, Write};
1414

1515
use crate::consensus::encode::{Error, MAX_VEC_SIZE};
@@ -695,7 +695,7 @@ impl Default for Witness {
695695

696696
#[cfg(feature = "arbitrary")]
697697
impl<'a> Arbitrary<'a> for Witness {
698-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
698+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
699699
let arbitrary_bytes = Vec::<Vec<u8>>::arbitrary(u)?;
700700
Ok(Witness::from_slice(&arbitrary_bytes))
701701
}

bitcoin/src/crypto/ecdsa.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use core::str::FromStr;
88
use core::{fmt, iter};
99

1010
#[cfg(feature = "arbitrary")]
11-
use arbitrary::{Arbitrary, Unstructured};
11+
use actual_arbitrary::{Arbitrary, Unstructured};
1212
use hex::FromHex;
1313
use internals::write_err;
1414
use io::Write;
@@ -258,7 +258,7 @@ impl From<hex::HexToBytesError> for Error {
258258

259259
#[cfg(feature = "arbitrary")]
260260
impl<'a> Arbitrary<'a> for Signature {
261-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
261+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
262262
// The valid range of r and s should be between 0 and n-1 where
263263
// n = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
264264
let high_min = 0x0u128;

bitcoin/src/crypto/sighash.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use core::{fmt, str};
1515

1616
#[cfg(feature = "arbitrary")]
17-
use arbitrary::{Arbitrary, Unstructured};
17+
use actual_arbitrary::{Arbitrary, Unstructured};
1818
use hashes::{hash_newtype, sha256, sha256d, sha256t_hash_newtype, Hash};
1919
use internals::write_err;
2020
use io::Write;
@@ -1450,7 +1450,7 @@ impl<E: std::error::Error + 'static> std::error::Error for SigningDataError<E> {
14501450

14511451
#[cfg(feature = "arbitrary")]
14521452
impl<'a> Arbitrary<'a> for EcdsaSighashType {
1453-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1453+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
14541454
let choice = u.int_in_range(0..=5)?;
14551455
match choice {
14561456
0 => Ok(EcdsaSighashType::All),
@@ -1465,7 +1465,7 @@ impl<'a> Arbitrary<'a> for EcdsaSighashType {
14651465

14661466
#[cfg(feature = "arbitrary")]
14671467
impl<'a> Arbitrary<'a> for TapSighashType {
1468-
fn arbitrary(u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
1468+
fn arbitrary(u: &mut Unstructured<'a>) -> actual_arbitrary::Result<Self> {
14691469
let choice = u.int_in_range(0..=6)?;
14701470
match choice {
14711471
0 => Ok(TapSighashType::Default),

0 commit comments

Comments
 (0)