Commit Graph

3634 Commits

Author SHA1 Message Date
Andrew Poelstra 8efaf4a300
Merge rust-bitcoin/rust-bitcoin#2417: Improve lock time errors
93dba898c2 Improve lock time errors (Martin Habovstiak)

Pull request description:

  The errors returned from various lock time functions had several issues. Among the obvious - `Error` being returned from all operations even when some of its variants were unreachable, there were subtle issues around error messages:

  * `ParseIntError` didn't contain information whether the parsed object is `Height` or `Time`.
  * Logically overflow and out-of-bounds should be the same thing but produced different error messages.
  * Mentioning integers is too technical for a user, talking about upper and lower bound is easier to understand.
  * When minus sign is present `std` reports it as invalid digit which is less helpful than saying negative numbers are not allowed.

  It is also possible that `ParseIntError` will need to be removed from public API during crate smashing or stabilization, so avoiding it may be better.

  This commit significantly refactors the errors. It adds separate types for parsing `Height` and `Time`. Notice that we don't compose them from `ParseIntError` and `ConversionError` - that's not helpful because they carry information that wouldn't be used when displaying which is wasteful. Keeping errors small can be important.

  It's also worth noting that exposing the inner representation could cause confusion since the same thing: out of bounds can be represented as an overflow or as a conversion error. So for now we conservatively hide the details and even pretend there's no `source` in case of overflow. This can be expanded in the future if needed.

  The returned errors are now minimal. `LockTime` parsing errors are currentlly unchanged.

  I can add `LockTime` changes in the same commit or separate within this PR if you want. Just wanted to push something for review before I go to sleep.

ACKs for top commit:
  apoelstra:
    ACK 93dba898c2
  tcharding:
    ACK 93dba898c2

Tree-SHA512: 68b60b413b1a1a0fc3648970d37f43e8b1b79f197ded053d83cfc1cf4fab4bed77d77841c2ae4d066b6436ee7187723c5d8cf934193c04c03520e797b7f7e82d
2024-01-31 21:00:55 +00:00
Martin Habovstiak 93dba898c2 Improve lock time errors
The errors returned from various lock time functions had several issues.
Among the obvious - `Error` being returned from all operations even when
some of its variants were unreachable, there were subtle issues around
error messages:

* `ParseIntError` didn't contain information whether the parsed object
   is `Height` or `Time`.
* Logically overflow and out-of-bounds should be the same thing but
  produced different error messages.
* Mentioning integers is too technical for a user, talking about upper
  and lower bound is easier to understand.
* When minus sign is present `std` reports it as invalid digit which is
  less helpful than saying negative numbers are not allowed.

It is also possible that `ParseIntError` will need to be removed from
public API during crate smashing or stabilization, so avoiding it may be
better.

This commit significantly refactors the errors. It adds separate types
for parsing `Height` and `Time`. Notice that we don't compose them from
`ParseIntError` and `ConversionError` - that's not helpful because they
carry information that wouldn't be used when displaying which is
wasteful. Keeping errors small can be important.

It's also worth noting that exposing the inner representation could
cause confusion since the same thing: out of bounds can be represented
as an overflow or as a conversion error. So for now we conservatively
hide the details and even pretend there's no `source` in case of
overflow. This can be expanded in the future if needed.

The returned errors are now minimal. `LockTime` parsing errors are
currentlly unchanged.
2024-01-31 15:13:56 +01:00
Andrew Poelstra 34c4039963
Merge rust-bitcoin/rust-bitcoin#2416: just: Reduce docs commands
bd4f14ee51 just: Reduce docs commands (Tobin C. Harding)

Pull request description:

  `cargo --doc` works from the workspace root, no need to run the docs builds individually.

  ## More context

  `cargo test` does not run docs tests if run from the workspace root as it does when run in a crate directory.

ACKs for top commit:
  sanket1729:
    utACK bd4f14ee51
  Kixunil:
    ACK bd4f14ee51

Tree-SHA512: f4003edcaf9bbc22cfcdcd142665fbb924b6a74af9145ee38d9f14275660e849d53b2f8d10ee45bf5b6c8e3b5123ead762da3fbc5f84714a55d2fe5273950270
2024-01-30 00:18:45 +00:00
Andrew Poelstra f0548c9318
Merge rust-bitcoin/rust-bitcoin#2414: Use nightly toolchain in pre-commit hook
13c8a709f1 Use nightly toolchain in pre-commit hook (Tobin C. Harding)

Pull request description:

  We use the nightly toolchain to run `clippy` now, update the git pre-commit hook to mirror this.

ACKs for top commit:
  apoelstra:
    ACK 13c8a709f1

Tree-SHA512: 46700641b81a1e5a2e39ff67ca0d31afaedfb58e008bf453c13f0312b2c6936ae38c58548934cae40abc9de0dc1ec4ce4bba4b8142b204d774612bd9721679c9
2024-01-29 22:29:38 +00:00
Tobin C. Harding bd4f14ee51
just: Reduce docs commands
`cargo --doc` works from the workspace root, no need to run the docs
builds individually.
2024-01-30 09:00:56 +11:00
Tobin C. Harding 13c8a709f1
Use nightly toolchain in pre-commit hook
We use the nightly toolchain to run `clippy` now, update the git
pre-commit hook to mirror this.
2024-01-30 07:19:12 +11:00
Andrew Poelstra 34d98356cd
Merge rust-bitcoin/rust-bitcoin#2410: Use `unsigned_abs` instead of manual code
dda83707a2 Use `unsigned_abs` instead of manual code (Martin Habovstiak)

Pull request description:

  The code originally used `if` and incorrectly casted the value into `usize` rather than `u64`. This change replaces the whole thing with `unsigned_abs`.

  Closes #1247

ACKs for top commit:
  apoelstra:
    ACK dda83707a2
  tcharding:
    ACK dda83707a2

Tree-SHA512: c57bf440705c69917206aab36bbbe5b048ed52d7a96ebd055416b8a249fc3f7ba32ebff3d2251b971e7ef999ff8169ac3db8e599ab38cf0776ecc030447a9a4a
2024-01-28 23:25:46 +00:00
Andrew Poelstra d883c3d5a2
Merge rust-bitcoin/rust-bitcoin#2408: Provide `Amount` & co in no-alloc
ac26171c32 Clean up `no_std` usage (Martin Habovstiak)
fce03cec85 Provide `Amount` & co in no-alloc (Martin Habovstiak)

Pull request description:

  Using the crate without allocation was previously disabled making the
  crate empty without the feature. This chage makes it more fine-grained:
  it only disables string and float conversions which use allocator. We
  could later provide float conversions by using a sufficiently-long
  `ArrayString`.

  Note that this is API-breaking because we disallow calling the methods of the sealed `SerdeAmount` trait. However I think it should've been obvious that the thing is internal and calling them is not a great idea. (BTW I only learned this trick recently).

  Closes #2389

ACKs for top commit:
  apoelstra:
    ACK ac26171c32 maaybe `private` should be renamed to `internal_api` or something
  tcharding:
    ACK ac26171c32

Tree-SHA512: 2ca2ff11c3c362f868c3993b5698ace32e6ce2cf2e8028bc43fe65797eb2239b4841c1c722a0184a7c8f4afea3b475b1a049dd77fa30358cb742d60463018e9f
2024-01-28 23:18:41 +00:00
Martin Habovstiak dda83707a2 Use `unsigned_abs` instead of manual code
The code originally used `if` and incorrectly casted the value into
`usize` rather than `u64`. This change replaces the whole thing with
`unsigned_abs`.

Closes #1247
2024-01-27 20:49:15 +01:00
Andrew Poelstra a38cdd520f
Merge rust-bitcoin/rust-bitcoin#2326: Improve the `justfile`
61f8bab65f just: Add quick and dirty CI command (Tobin C. Harding)
e185fe46df just: Lint with nightly toolchain (Tobin C. Harding)

Pull request description:

  Improve the `justfile` by doing:

  - Update linter toolchain
  - Add `just sane` to run a minimal set of checks/tests that can be used pre-push but is not as slow as using `DO_FEATURE_MATRIX=true contrib/test.sh`.

ACKs for top commit:
  apoelstra:
    ACK 61f8bab65f
  Kixunil:
    ACK 61f8bab65f

Tree-SHA512: 730874f0381db9ae30052ad6511805f76ae5c13c4c5cc5ad272430cf7e67cfbe7b288aa6dc47035ff5e8e42e03d3e4a3bf9d3e9a072c9aa922f9df62c43850b3
2024-01-27 16:49:01 +00:00
Martin Habovstiak ac26171c32 Clean up `no_std` usage
Previously the crate used negative reasoning to enable `std` which was
hard to understand, required the `prelude` module and wasn't really
needed because it's only needed when a crate wants to add `alloc`
feature-backwards compatibly and this crate always had the feature.

This cleans up usage to unconditionally use `#[no_std]` and then just
add `extern crate` on top as needed by activated features.
2024-01-27 13:25:40 +01:00
Martin Habovstiak fce03cec85 Provide `Amount` & co in no-alloc
Using the crate without allocation was previously disabled making the
crate empty without the feature. This chage makes it more fine-grained:
it only disables string and float conversions which use allocator. We
could later provide float conversions by using a sufficiently-long
`ArrayString`.
2024-01-27 12:46:55 +01:00
Tobin C. Harding 61f8bab65f
just: Add quick and dirty CI command
Add a command that attempts to cove a reasonable useful subset of our CI
checks in order to hasten development.
2024-01-27 14:10:58 +11:00
Andrew Poelstra e2b9555070
Merge rust-bitcoin/rust-bitcoin#2370: Improve units
7bf478373a Model `TooBig` and `Negative` as `OutOfRange` (Martin Habovstiak)
54cbbf804f Express `i64::MAX + 1` as `i64::MIN.unsigned_abs()` (Martin Habovstiak)
b562a18914 Move denomination error out of `ParseAmountError` (Martin Habovstiak)
5e6c65bc1a Clean up `unsigned_abs` (Martin Habovstiak)

Pull request description:

  Closes #2265
  Closes #2266

  Disclaimer: I did this in December and don't remember why I haven't pushed it. Maybe because it's somehow broken but I don't see how so please review a bit more carefully just in case.

ACKs for top commit:
  tcharding:
    ACK 7bf478373a
  apoelstra:
    ACK 7bf478373a

Tree-SHA512: 1f6e9adae9168bd045c9b09f06d9a69efd47ccc7709ac9ecaf48cb86e265b448b9b52a199ac5e6838d5029f5bc7514c5d7deb15a4d7c8a4606a353f390745570
2024-01-26 13:18:57 +00:00
Andrew Poelstra 2971740fd4
Merge rust-bitcoin/rust-bitcoin#2399: Use `Magic::BITCOIN` in unit tests
6ddb5cce37 Use Magic::BITCOIN in unit tests (Tobin C. Harding)

Pull request description:

  We are currently calling `From` to create the magic bytes, this is unnecessary since `Magic` provides consts.

  Refactor only, no logic changes.

ACKs for top commit:
  Kixunil:
    ACK 6ddb5cce37
  apoelstra:
    ACK 6ddb5cce37

Tree-SHA512: 20e2e017683f123309e3c0876bba42d86a9411bb225f07c486716184fc79837e04a832338ec8b18874ac76791260f6a4620b932ede92c8b222dac08d468cef8a
2024-01-25 15:38:22 +00:00
Andrew Poelstra 6bd8375959
Merge rust-bitcoin/rust-bitcoin#2402: Remove TODOs
5eb2de1660 Remove TODO about rand trait (Tobin C. Harding)
66cc007c2b p2p: Remove TODO comments (Tobin C. Harding)
0b5fb45ea0 consensus: Remove HEX_BUF_SIZE todo (Tobin C. Harding)
579668892a consensus: Remove TODO (Tobin C. Harding)
53beb9db30 Remove ancient todos in test code (Tobin C. Harding)
abe2241828 units: Remove "alloc" TODO (Tobin C. Harding)
5386ef0fd2 psbt: Delete TODO comments (Tobin C. Harding)
14c8a2232b examples: Remove TODO (Tobin C. Harding)

Pull request description:

  Done while working on #2368.  There are 5 left. Do we want to leave the MSRV ones in there?

  ```bash
  bitcoin/src/blockdata/weight.rs:66:                 // TODO replace with panic!() when MSRV = 1.57+
  bitcoin/src/consensus/serde.rs:101:    // TODO: statically prove impossible cases
  bitcoin/src/pow.rs:445:            // TODO: Use `carrying_mul` when stabilized: https://github.com/rust-lang/rust/issues/85532
  units/src/amount.rs:595:        // TODO replace whith unwrap() when available in const context.
  units/src/amount.rs:599:                // TODO replace with panic!() when MSRV = 1.57+
  ```

ACKs for top commit:
  Kixunil:
    ACK 5eb2de1660
  apoelstra:
    ACK 5eb2de1660

Tree-SHA512: 285b1711a6e6fba126e2c4159b25454c7f894122b76fde1d3d29e57b2ec0a6e90230e46ac79d70aa133da177c75d267fc5a13489b69881862649de771027ec8e
2024-01-25 15:06:28 +00:00
Andrew Poelstra 2de220ec6a
Merge rust-bitcoin/rust-bitcoin#2097: Add `Witness::p2tr_key_spend` function
6715e93e89 Add Witness::p2tr_key_spend function (Tobin C. Harding)

Pull request description:

  Add a function for creating the witness when doing a key path spend for a P2TR output.

  This mirrors what we did for P2WPKH when adding `Witness::p2wpkh`.

  Includes update to the taproot signing example to use the new constructor.

ACKs for top commit:
  Kixunil:
    ACK 6715e93e89
  apoelstra:
    ACK 6715e93e89

Tree-SHA512: aab51329e8fda471442bb9cebd6327636548dd157bb9842fe66993fcdd211bb04b2b829aa9d5962dd619f5c0b73d19644a44529c1a5958df1a6bc892147b44f5
2024-01-25 13:34:06 +00:00
Tobin C. Harding 5eb2de1660
Remove TODO about rand trait
This TODO applies to the whole codebase, remove it and add an issue.

  https://github.com/rust-bitcoin/rust-bitcoin/issues/2401
2024-01-25 17:10:41 +11:00
Tobin C. Harding 66cc007c2b
p2p: Remove TODO comments
Remove three TODOs and create an issue:

  https://github.com/rust-bitcoin/rust-bitcoin/issues/2400
2024-01-25 17:07:07 +11:00
Tobin C. Harding 0b5fb45ea0
consensus: Remove HEX_BUF_SIZE todo
Remove the todo, replace it with a comment stating that we guessed the
size and add an issue to measure and improve the value.

  https://github.com/rust-bitcoin/rust-bitcoin/issues/2391
2024-01-25 16:59:56 +11:00
Tobin C. Harding 579668892a
consensus: Remove TODO
Remove todo in unit tests and add issue:

  https://github.com/rust-bitcoin/rust-bitcoin/issues/2390
2024-01-25 16:59:56 +11:00
Tobin C. Harding 53beb9db30
Remove ancient todos in test code
These todos has been here since 2015 and 2016- I don't think they are
getting done anytime soon, just remove them.
2024-01-25 16:59:55 +11:00
Tobin C. Harding abe2241828
units: Remove "alloc" TODO
Remove the TODO and add an issue:

  https://github.com/rust-bitcoin/rust-bitcoin/issues/2389
2024-01-25 16:59:55 +11:00
Tobin C. Harding 5386ef0fd2
psbt: Delete TODO comments
Development for `psbt` has move to another repo, these TODO comments are
over there alread, lets just remove them from `rust-bitcoin` as part of
an effort to remove TODOs from the codebase.
2024-01-25 16:59:55 +11:00
Tobin C. Harding 14c8a2232b
examples: Remove TODO
Remove the todo from `sighash` and add issue:

  https://github.com/rust-bitcoin/rust-bitcoin/issues/2386
2024-01-25 16:59:55 +11:00
Tobin C. Harding 6ddb5cce37
Use Magic::BITCOIN in unit tests
We are currently calling `From` to create the magic bytes, this is
unnecessary since `Magic` provides consts.

Refactor only, no logic changes.
2024-01-25 14:52:45 +11:00
Andrew Poelstra 48b42c10fb
Merge rust-bitcoin/rust-bitcoin#2395: Do minor error fixes
fb81bff61f Add a from impl for ParseIntError (Tobin C. Harding)
2130150df6 absolute: Use Self in error type (Tobin C. Harding)

Pull request description:

  While reviewing #2335 I noticed a few places that error code needed some love.

ACKs for top commit:
  Kixunil:
    ACK fb81bff61f
  Harshit933:
    ACK [`fb81bff`](fb81bff61f)
  apoelstra:
    ACK fb81bff61f

Tree-SHA512: 17f4e448862be47534d4c1c2962d5db8f90a471e53226022d7c2e153fc501705cd65b070eb17f3239fb8ad242223340f78fe828ea7df3d43707d3e42fcbef557
2024-01-24 22:17:46 +00:00
Andrew Poelstra 2f7d6451f8
Merge rust-bitcoin/rust-bitcoin#2392: Add functionality to serialize signatures to a writer
3cfd746bbc Add functionality to serialize signatures to a writer (Tobin C. Harding)

Pull request description:

  Serializing the ecdsa and taproot `Signature` straight to a writer is a useful thing to be able to do.

  Add `to_writer` to both `SerializedSignature`s and also to the `Signature`s (calling through to `SerializedSignature`).

  Remove TODO comments from code.

ACKs for top commit:
  Kixunil:
    ACK 3cfd746bbc

Tree-SHA512: 82eb6d42c7b327cdfe5e89348890e45ea39c664420f7ea17d7826a5c388c7aaae917b1334e3f3df645fc4a81a11b59d97c7d6958e99077fbd67193e2a588f2eb
2024-01-24 21:35:47 +00:00
Andrew Poelstra 53808fa9c9
Merge rust-bitcoin/rust-bitcoin#2388: Use hex-conservative to display pubkey
faa45cf10f Remove stale comment (Tobin C. Harding)
c82f26e960 Use hex-conservative to display pubkey (Tobin C. Harding)

Pull request description:

  We introduced `hex-conservative` ages ago, use it to display the `PublicKey`.

ACKs for top commit:
  Kixunil:
    ACK faa45cf10f
  apoelstra:
    ACK faa45cf10f

Tree-SHA512: 8ad14c7697314f8393ecb9a287215c505924d0655f7bf3536d4be83af983b142e06a96f802beb4548e2de051f1783549d8d1d1a8ebfb678f372a54010717752e
2024-01-24 17:33:12 +00:00
Andrew Poelstra 7a1f5e4b4d
Merge rust-bitcoin/rust-bitcoin#2384: Remove `serde-std` from `hashes`
1c4614ea30 hashes: Remove serde-std feature (Tobin C. Harding)

Pull request description:

  As we do for "rand-std" in the `bitcoin` crate we can enable "std" when the "serde-std" feature is enabled. This makes the features more explicit and arguably more ergonomic.

  Found while working on #2353, no additional testing added hear (in CI).

ACKs for top commit:
  Kixunil:
    ACK 1c4614ea30
  apoelstra:
    ACK 1c4614ea30

Tree-SHA512: b82b72eacdd84cca076747a0eb0c7a625ec6f918701699ca7e7159e0606b089c80182e9d54e1d48b2957815883a36dfa337e353573a6ffe4fa19458615111080
2024-01-24 15:35:11 +00:00
Andrew Poelstra 434773d993
Merge rust-bitcoin/rust-bitcoin#2362: Factor out `io::Error` from sighash errors
3c4f6850f4 Flatten trivial errors. (Martin Habovstiak)
a4d01d0b6c Factor out `io::Error` from sighash errors (Martin Habovstiak)

Pull request description:

  The hadnling of `io::Error` in sighash had a few problems:

  * It used `io::ErrorKind` instead of `io::Error` losing inforation
  * Changing `io::ErrorKind` to `io::Error` would disable `PartialEq`&co
  * The `Io` error wariants were duplicated

  It turns out all of these can be solved by moving the `Io` variant into a separate error.

ACKs for top commit:
  apoelstra:
    ACK 3c4f6850f4
  tcharding:
    ACK 3c4f6850f4

Tree-SHA512: b7ad6b692062d636ce29e4ebb448a8ac8ea3090feee1d349472e13f905f1f3785decc86e037d2d9658c1331a271e730076139a8d8f6c9b7dadda8b3221f6d434
2024-01-24 14:55:35 +00:00
Andrew Poelstra cf3a7bb758
Merge rust-bitcoin/rust-bitcoin#2366: Rename `txid` to `compute_txid`
7af3a58e91 Rename ntxid to compute_ntxid (yancy)
9bbf79b08c Rename wtxid to compute_wtxid (yancy)
57a7613973 Rename txid to compute_txid (yancy)

Pull request description:

  Rename txid to compute_txid and mark txid as deprecated.

  Closes #2363

ACKs for top commit:
  Kixunil:
    ACK 7af3a58e91
  apoelstra:
    ACK 7af3a58e91
  tcharding:
    ACK 7af3a58e91

Tree-SHA512: 0d9200588cd83c42b78f0ba5e6a6aa049e8360aec8b9881cf9bfbaaad0d256e6879b494fb3c4e2b06d371b9e5dde6addcc94c67a080d16a6eed5c9bc36bc845a
2024-01-24 14:07:03 +00:00
Martin Habovstiak 7bf478373a Model `TooBig` and `Negative` as `OutOfRange`
The error returned when parsing amount had a `Negative` variant which
was weird/unreachable when parsing `SignedAmount`. Also weirdly, parsing
would return `TooBig` when the amount was negative - too low.

To resolve this we merge them into one `OutOfRange` variant that nuges
the consumers to make principled decisions and print error messages as
amounts being more than or less than a specific value which is easier to
understand for the users. Notably, the API still allows getting
information about which type was parsed and which bound was crossed but
in a less obvious way. This is OK since users who have a very good
reason can use this information but most won't.

Closes #2266
2024-01-24 11:37:46 +01:00
Martin Habovstiak 54cbbf804f Express `i64::MAX + 1` as `i64::MIN.unsigned_abs()`
This better conveys the intention that we're checking the lower bound.
2024-01-24 11:25:09 +01:00
Martin Habovstiak b562a18914 Move denomination error out of `ParseAmountError`
The `from_str_in` methods on amounts returned `ParseAmountError` which
contained `InvalidDenomination` among its variants. This one was never
returned because the method doesn't parse denomination.

This change separates the error out.

Closes #2265
2024-01-24 11:25:09 +01:00
Martin Habovstiak 5e6c65bc1a Clean up `unsigned_abs`
Previousle we copied `unsigned_abs` method from `core` because it was
unstable in older MSRV. Our current MSRV allows using the method
directly so this removes our old one and uses the one from standard
library instead.
2024-01-24 11:25:09 +01:00
Tobin C. Harding 6715e93e89
Add Witness::p2tr_key_spend function
Add a function for creating the witness when doing a key path spend for
a P2TR output.

This mirrors what we did for P2WPKH when adding `Witness::p2wpkh`.

Includes update to the taproot signing example to use the new constructor.
2024-01-24 15:21:31 +11:00
Tobin C. Harding fb81bff61f
Add a from impl for ParseIntError
As is customary add a `From` impl for the `ParseIntError` and use `?`.
While this does not make much difference it saves devs wondering why
there is a `From` impl for one of the variants and not the other.
2024-01-24 13:31:57 +11:00
Tobin C. Harding 2130150df6
absolute: Use Self in error type
As is becoming conventional here, use `Self` in the `From` impl for
error type.
2024-01-24 13:29:20 +11:00
Tobin C. Harding 3cfd746bbc
Add functionality to serialize signatures to a writer
Serializing the ecdsa and taproot `Signature` straight to a writer is a
useful thing to be able to do.

To both ECDSA and Taproot types:

- Add `SerializedSignature::to_writer`
- Add `Signature::serialize_to_writer`

Remove TODO comments from code.
2024-01-24 13:02:08 +11:00
Tobin C. Harding 1c4614ea30
hashes: Remove serde-std feature
We do not need to enable the "std" feature on `serde`.
2024-01-24 12:58:02 +11:00
Tobin C. Harding faa45cf10f
Remove stale comment
This uses `hex-conservative` which is fast, remove the stale comment.
2024-01-24 12:12:38 +11:00
Tobin C. Harding c82f26e960
Use hex-conservative to display pubkey
We introduced `hex-conservative` ages ago, use it to display the
`PublicKey`.
2024-01-24 12:12:38 +11:00
yancy 7af3a58e91 Rename ntxid to compute_ntxid
Computing the ntxid is computationally expensive, so rename the method
accordingly.
2024-01-23 19:53:39 +01:00
Andrew Poelstra ccbc976261
Merge rust-bitcoin/rust-bitcoin#2382: Improve private function `use_segwit_serialization`
dae16f052c Use any method on iterator (Tobin C. Harding)
671dc0e9e0 Use better predicate name (Tobin C. Harding)

Pull request description:

  - Patch 1: Improve the name.
  - Patch 2: Use `any` instead of manual loop.

ACKs for top commit:
  Kixunil:
    ACK dae16f052c
  apoelstra:
    ACK dae16f052c

Tree-SHA512: 9b98c21cbb5fa93c011ba8bae88ab0dd2efa807d7cb220f121c56b31fbe5a9e9cd6f29badeca092e22949dc278c1a9d3dd676cd2919a11f13101d0dd83ec9313
2024-01-23 15:38:47 +00:00
Andrew Poelstra e0033367a8
Merge rust-bitcoin/rust-bitcoin#2387: Use KnowHrp instead of Network
20a5f1f35f Use KnowHrp instead of Network (Tobin C. Harding)

Pull request description:

  We have a bunch of functions that take `Network` when what they really want is something that can be converted to a `KnownHrp`.

  Make `KnownHrp` public and accept `impl Into<KnownHrp>`.

ACKs for top commit:
  Kixunil:
    ACK 20a5f1f35f
  apoelstra:
    ACK 20a5f1f35f

Tree-SHA512: d13ae989ca5136523902e938a04357776e00c650ec8699b335f04798a2fb4ea55e596b200b3ba1807d897884362ef9c419a15193ffdbd4ec26be53152a8ac1d3
2024-01-23 15:19:26 +00:00
Andrew Poelstra 7802d18557 Merge rust-bitcoin/rust-bitcoin#2381: Remove bech32 from the public API
9eeadaab98 bitcoin: Remove bech32 from the public API (Tobin C. Harding)

Pull request description:

  The only place that `bech32` appears in the pubic API is as a pub extern crate re-export. This is totally unnecessary since no other `bech32` functions or types appear in the public API.

  Removing `bech32` from the public API allows us to stabilize `rust-bitcoin` without waiting for `bech32` to stabalize - WIN.

ACKs for top commit:
  Kixunil:
    ACK 9eeadaab98
  apoelstra:
    ACK 9eeadaab98

Tree-SHA512: f411df7c38b417c1a4b9c175e7f7df7631d25ce23351eae8d77dff5c9aed5a4ae3b3755f0eb6e7d109f040e93d89f6777d74c2306314895f52fd349c91996c95
2024-01-23 15:09:05 +00:00
yancy 9bbf79b08c Rename wtxid to compute_wtxid
Computing the wtxid is computationally expensive, so rename the method
accordingly.
2024-01-23 15:57:50 +01:00
yancy 57a7613973 Rename txid to compute_txid
Computing the txid is computationally expensive, so rename the method
accordingly.
2024-01-23 15:57:50 +01:00
Andrew Poelstra 8b552c7706
Merge rust-bitcoin/rust-bitcoin#2393: Add kani test and remove TODO
66352cba98 Add kani test and remove TODO (Tobin C. Harding)

Pull request description:

  Add a kani test to check `div_rem`.

ACKs for top commit:
  Kixunil:
    ACK 66352cba98
  apoelstra:
    ACK 66352cba98

Tree-SHA512: 2cb277e11d9d853f92b12e3c1e93f4a1094466a7aab9a9a8d0883e015b4c0d876678d8147f107155dee11911954e7b3da6ee25e0e67f39f76a4da45b1dbc5307
2024-01-23 14:35:58 +00:00