Skip to content

Commit

Permalink
Merge rust-bitcoin#3581: Fix re-exports and (manually) format the cod…
Browse files Browse the repository at this point in the history
…ebase

727c519 Re-export amount from primitives (Tobin C. Harding)
84ede34 Run the formatter (Tobin C. Harding)
4865d60 bitcoin: Improve the re-exports ... again (Tobin C. Harding)

Pull request description:

  When we messed with the re-exports recently we failed to notice that the formatter would move the `pub use` blocks around because I only put `rustfmt::skip` on one block, I thought that had the effect of stopping all exports below that block being changed, turns out I was wrong.

  Run the formatter then make some minor changes to the re-exports in `bitcoin`, including changing comments that do not make sense with the new layout.

ACKs for top commit:
  apoelstra:
    ACK 727c519; successfully ran local tests

Tree-SHA512: fa9fbadf7efa0a76db6a0a2915fcabeda348c561e4047f9517ca7fba1a2008d5624072b7a9ce6069d71c229a794b4d27c3d96195768e87b3c2c412d611ecbfcf
  • Loading branch information
apoelstra committed Nov 11, 2024
2 parents c3a4ba2 + 727c519 commit 73e33e5
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 40 deletions.
7 changes: 5 additions & 2 deletions bitcoin/src/blockdata/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -249,12 +249,15 @@ impl Block {

let cb = self.coinbase().ok_or(Bip34Error::NotPresent)?;
let input = cb.input.first().ok_or(Bip34Error::NotPresent)?;
let push = input.script_sig.instructions_minimal()
let push = input
.script_sig
.instructions_minimal()
.next()
.ok_or(Bip34Error::NotPresent)?
.map_err(to_bip34_error)?;
match (push.script_num(), push.push_bytes().map(|b| b.read_scriptint())) {
(Some(num), Some(Ok(_)) | None) => Ok(num.try_into().map_err(|_| Bip34Error::NegativeHeight)?),
(Some(num), Some(Ok(_)) | None) =>
Ok(num.try_into().map_err(|_| Bip34Error::NegativeHeight)?),
(_, Some(Err(err))) => Err(to_bip34_error(err)),
(None, _) => Err(Bip34Error::NotPresent),
}
Expand Down
4 changes: 1 addition & 3 deletions bitcoin/src/blockdata/script/push_bytes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,7 @@ mod primitive {
}

/// Constructs an empty `&PushBytes`.
pub fn empty() -> &'static Self {
Self::from_slice_unchecked(&[])
}
pub fn empty() -> &'static Self { Self::from_slice_unchecked(&[]) }

/// Returns the underlying bytes.
pub fn as_bytes(&self) -> &[u8] { &self.0 }
Expand Down
56 changes: 31 additions & 25 deletions bitcoin/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,18 +114,40 @@ pub mod psbt;
pub mod sign_message;
pub mod taproot;

#[rustfmt::skip] // Keep public re-exports separate.
// Re-export the type from where it is defined but the module from the highest place up the stack
// that it is available in the event that we add some functionality there.
#[doc(inline)]
pub use primitives::{
block::{BlockHash, Header as BlockHeader, WitnessCommitment},
merkle_tree::{TxMerkleNode, WitnessMerkleNode},
opcodes::Opcode,
pow::CompactTarget, // No `pow` module outside of `primitives`.
script::{Script, ScriptBuf},
sequence::{self, Sequence}, // No `sequence` module outside of `primitives`.
transaction::{OutPoint, Transaction, TxIn, TxOut, Txid, Wtxid},
witness::Witness,
};
#[doc(inline)]
pub use units::{
amount::{Amount, Denomination, SignedAmount},
block::{BlockHeight, BlockInterval},
fee_rate::FeeRate,
weight::Weight,
};

#[doc(inline)]
pub use crate::{
address::{Address, AddressType, KnownHrp},
bip158::{FilterHash, FilterHeader},
bip32::XKeyIdentifier,
crypto::ecdsa,
crypto::key::{self, PrivateKey, PubkeyHash, PublicKey, CompressedPublicKey, WPubkeyHash, XOnlyPublicKey},
crypto::key::{
self, CompressedPublicKey, PrivateKey, PubkeyHash, PublicKey, WPubkeyHash, XOnlyPublicKey,
},
crypto::sighash::{self, LegacySighash, SegwitV0Sighash, TapSighash, TapSighashTag},
merkle_tree::MerkleBlock,
network::{Network, NetworkKind, TestnetVersion},
network::params::{self, Params},
network::{Network, NetworkKind, TestnetVersion},
pow::{Target, Work},
psbt::Psbt,
sighash::{EcdsaSighashType, TapSighashType},
Expand All @@ -134,32 +156,16 @@ pub use crate::{
// Re-export all modules from `blockdata`, users should never need to use `blockdata` directly.
#[doc(inline)]
pub use crate::{
// These modules also re-export all the respective `primitives` types.
blockdata::{block, constants, fee_rate, locktime, opcodes, script, transaction, weight, witness},
// And re-export types and modules from `blockdata` that don't come from `primitives`.
blockdata::block::Block, // TODO: Move this down below after it is in primitives.
// Also, re-export types and modules from `blockdata` that don't come from `primitives`.
blockdata::block::Block, // TODO: Move this after `Block` is in primitives.
blockdata::locktime::{absolute, relative},
blockdata::script::witness_program::{self, WitnessProgram},
blockdata::script::witness_version::{self, WitnessVersion},
blockdata::script::{ScriptHash, WScriptHash}, // TODO: Move these down below after they are in primitives.
};
#[doc(inline)]
pub use primitives::{
block::{BlockHash, WitnessCommitment, Header as BlockHeader},
merkle_tree::{TxMerkleNode, WitnessMerkleNode},
opcodes::Opcode,
pow::CompactTarget,
script::{Script, ScriptBuf},
transaction::{OutPoint, Transaction, TxIn, TxOut, Txid, Wtxid},
witness::Witness,
sequence::Sequence,
};
#[doc(inline)]
pub use units::{
amount::{Amount, Denomination, SignedAmount},
block::{BlockHeight, BlockInterval},
fee_rate::FeeRate,
weight::Weight
// These modules also re-export all the respective `primitives` types.
blockdata::{
block, constants, fee_rate, locktime, opcodes, script, transaction, weight, witness,
},
};

#[rustfmt::skip]
Expand Down
1 change: 0 additions & 1 deletion chacha20_poly1305/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
//! Combine the ChaCha20 stream cipher with the Poly1305 message authentication code
//! to form an authenticated encryption with additional data (AEAD) algorithm.
#![no_std]

// Experimental features we need.
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
// Coding conventions.
Expand Down
2 changes: 1 addition & 1 deletion primitives/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ pub mod transaction;
pub mod witness;

#[doc(inline)]
pub use units::amount::{Amount, SignedAmount};
pub use units::amount::{self, Amount, SignedAmount};
#[cfg(feature = "alloc")]
#[doc(inline)]
pub use units::{
Expand Down
5 changes: 1 addition & 4 deletions units/src/amount/signed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,7 @@ impl SignedAmount {
pub fn from_int_btc(btc: i64) -> Result<SignedAmount, OutOfRangeError> {
match btc.checked_mul(100_000_000) {
Some(amount) => Ok(SignedAmount::from_sat(amount)),
None => Err(OutOfRangeError {
is_signed: true,
is_greater_than_max: true,
})
None => Err(OutOfRangeError { is_signed: true, is_greater_than_max: true }),
}
}

Expand Down
5 changes: 1 addition & 4 deletions units/src/amount/unsigned.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,7 @@ impl Amount {
pub fn from_int_btc(btc: u64) -> Result<Amount, OutOfRangeError> {
match btc.checked_mul(100_000_000) {
Some(amount) => Ok(Amount::from_sat(amount)),
None => Err(OutOfRangeError {
is_signed: false,
is_greater_than_max: true,
})
None => Err(OutOfRangeError { is_signed: false, is_greater_than_max: true }),
}
}

Expand Down

0 comments on commit 73e33e5

Please sign in to comment.