rust-bitcoin-unsafe-fast/bitcoin/src
merge-script 20c50e337f
Merge rust-bitcoin/rust-bitcoin#4248: Alloc-free (AKA zero-copy) control block
9ea2e9262f Don't use references to `TaprootMerkleBranchBuf` (Martin Habovstiak)
c528f52894 Change `Deref::Target` of `TaprootMerkleBranchBuf` (Martin Habovstiak)
04a4efbe63 Introduce unsized `TaprootMerkleBranch` (Martin Habovstiak)
370c2597c6 Add `as_mut_slice` to `TaprootMerkleBranchBuf` (Martin Habovstiak)
33d75659da Push `merkle_branch` module one level deeper. (Martin Habovstiak)
277045bad7 Add `Buf` suffix to `TaprootMerkleBranch` (Martin Habovstiak)

Pull request description:

  This implements a bunch of changes needed to make `ControlBlock` alloc-free. In particular, this allows constructing `Witness` without the intermediate allocation. It is also a step towards having `P2TrSpend` public.

  Closes #1614

  This also intentionally does **not** address decoding of `ControlBlock` from `Witness` since I'm not sure about the API.

  Rationale for doing the `Buf` rename: while doing it with `Script` was very painful it shouldn't be here since it's not used that often and also we can just backport the first commit with deprecated type alias. I was thinking of having `TaprootMerkleBr` but it'd be inconsistent and the name is silly.

  (Also if anyone is wondering why I did this: I was too exhausted to do more important stuff but felt like doing something nice and easy like this.)

ACKs for top commit:
  tcharding:
    ACK 9ea2e9262f
  apoelstra:
    ACK 9ea2e9262fbc04ea6fad33047de0fc1ead999dc7; successfully ran local tests

Tree-SHA512: c5e3ea61d10fbe0cbce5e900943e3cef77a175a62043c500b3ff6df57a96f00692d80fb1c4dd75bca9a704201baab6ddfcc430b12c7ecabc43968198466fed9d
2025-03-20 19:12:00 +00:00
..
address Enable getting the network kind from an address 2025-03-17 12:27:11 +11:00
blockdata Merge rust-bitcoin/rust-bitcoin#4248: Alloc-free (AKA zero-copy) control block 2025-03-20 19:12:00 +00:00
consensus fix typos 2025-03-10 09:04:59 +08:00
crypto amount: add from_sat_i32 and from_sat_u32 methods for small constants 2025-03-18 19:27:53 +00:00
merkle_tree 2025-01-12 automated rustfmt nightly 2025-01-12 01:23:13 +00:00
network Update CompactTarget::from_next_work_required to take timespan as i64 2024-11-27 11:27:22 -06:00
p2p test: add coverage for ServiceFlags::P2P_V2 2025-03-11 18:24:16 -03:00
psbt tests: replace Amount::from_sat_unchecked with from_sat.unwrap 2025-03-18 19:27:53 +00:00
taproot Don't use references to `TaprootMerkleBranchBuf` 2025-03-18 16:33:05 +01:00
bip32.rs Add validation for private key format and master key constraints 2025-03-10 10:22:41 -03:00
bip152.rs 2025-03-16 automated rustfmt nightly 2025-03-16 01:25:25 +00:00
bip158.rs 2025-01-12 automated rustfmt nightly 2025-01-12 01:23:13 +00:00
consensus_validation.rs Stop using FQP on Amount type 2025-01-24 08:54:24 +11:00
hash_types.rs bitcoin: Remove hash type re-exports 2025-03-04 08:15:04 +11:00
internal_macros.rs Set avoid-breaking-exported-api to false 2024-12-11 10:11:50 +11:00
lib.rs 2025-03-16 automated rustfmt nightly 2025-03-16 01:25:25 +00:00
policy.rs Policy: Relax MIN_STANDARD_TX_NONWITNESS_SIZE to 65 2025-02-27 00:20:08 +07:00
pow.rs chore: spellchecker 2025-03-16 07:23:18 +00:00
serde_utils.rs Elide more lifetimes 2024-10-28 15:22:13 +11:00
sign_message.rs update secp256k1 to 0.30.0 2025-03-02 23:31:48 +08:00