Commit Graph

16 Commits

Author SHA1 Message Date
Noah a79c69894a new type network magic 2022-09-28 10:32:47 +10:00
Tobin C. Harding f429c22599 Remove user_enum macro
The `user_enum` macro is only used a single time. The macro includes
custom serde logic which can be trivially derived instead.

Remove the `user_enum` macro and just implement `Network` the old
fashioned way. Doing so simplifies the code.
2022-09-20 16:53:38 +10:00
Tobin C. Harding ad29084582 Add Network serde roundtrip test
In preparation for patching the `Network` serde impls; add a roundtrip
test for `serde` (de)serializing  the `Network` type.
2022-09-20 15:29:55 +10:00
Andrew Poelstra aeacbe763d
Merge rust-bitcoin/rust-bitcoin#1286: Make `ChainHash::using_genesis_block` constant
92ef41b663 Make `ChainHash::using_genesis_block` constant (Jeffrey Czyz)

Pull request description:

  ChainHash::using_genesis_block can't be `const` if it uses a `match` expression prior to Rust 1.46. Use an array mapping to work around this limitation.

  Follow-up suggested in [#1283](https://github.com/rust-bitcoin/rust-bitcoin/pull/1283#issuecomment-1249418809).

ACKs for top commit:
  apoelstra:
    ACK 92ef41b663
  Kixunil:
    ACK 92ef41b663

Tree-SHA512: 71f95877c8e5335012ad0339e1f8691e3b33344fa02ecc24c3d4d728232cb7b0de62aec20eb1855b23eeccfbc2eeab920b21ee2243d95c6c89fa8ad5bc846975
2022-09-16 22:21:08 +00:00
Jeffrey Czyz 92ef41b663
Make `ChainHash::using_genesis_block` constant
ChainHash::using_genesis_block can't be `const` if it uses a `match`
expression prior to Rust 1.46. Use an array mapping to work around this
limitation.
2022-09-16 13:49:50 -05:00
Andrew Poelstra ccf9c3a172
Merge rust-bitcoin/rust-bitcoin#1285: Implement From for hash types
96dfcdf3b7 Implement From for hash types (Noah)

Pull request description:

  Reopening #1280 on the right branch + implemented `From` for references of types that were done in #1280.

ACKs for top commit:
  Kixunil:
    ACK 96dfcdf3b7
  apoelstra:
    ACK 96dfcdf3b7

Tree-SHA512: ad762032390f060b87cdd24033a5fc13a4c5297c55d7091ed89c5ca240be2f57998c0be084f40f9b04833920756b93a3ca4576a2ef944872354d1b3607734228
2022-09-16 18:05:09 +00:00
Andrew Poelstra 51df1c4024
Merge rust-bitcoin/rust-bitcoin#1282: Remove code deprecated last release
7a1aa2098a Remove code deprecated last release (Tobin C. Harding)

Pull request description:

  We give one release cycle for deprecating old code so as to make the upgrade path easier for downstream users.

  Remove code deprecated during the last release (v0.29.0).

  (Check out my diff stats - all red ;)

ACKs for top commit:
  apoelstra:
    ACK 7a1aa2098a
  Kixunil:
    ACK 7a1aa2098a

Tree-SHA512: d4b9c65d0d8a0aac31cf94d826e8a6084d4f5427a26da2ad5a3973c7f5931fa10695214dc602261e9079e1c06c6dc3f5b5dcdb8d20b5c39eaadd9a33d23746dd
2022-09-16 17:36:22 +00:00
Noah 96dfcdf3b7 Implement From for hash types 2022-09-16 22:29:05 +10:00
Jeffrey Czyz b1d85160ba
Add constants to `ChainHash` for each `Network`
`ChainHash::using_genesis_block` can't be made `const` because it uses a
`match` expression, which is only valid in Rust 1.46. Add individual
constants as a workaround so that `ChainHash` can be used in `const`
contexts.
2022-09-15 20:03:57 -05:00
Tobin C. Harding 7a1aa2098a Remove code deprecated last release
We give one release cycle for deprecating old code so as to make the
upgrade path easier for downstream users.

Remove code deprecated during the last release (v0.29.0).
2022-09-16 08:08:53 +10:00
Tobin C. Harding 3f275f7f2b Remove code deprecated in v0.28.0
I believe we said we'd keep deprecated code around for two release
cycles so this code can  all be deleted now.
2022-09-15 13:29:02 +10:00
Tobin C. Harding c4eb218cd0 schnorr:: Remove incorrect deprecated
Currently we attempt to have deprecated key types in the `schnorr`
module. The `deprecated` attribute does not work on types, only on
functions.

Remove the broken deprecation logic and re-export key types instead of
using type alias', this allows a bunch of qualified paths to be
simplified also.

Add `pub use` re-exports of all secp256k1 types that are part of the
public API of the `schnorr` module. This makes the module more ergonomic
to use.
2022-09-15 12:34:51 +10:00
Martin Habovstiak 4d54b161e7 Fix serde versions
`Cargo.toml` claimed that this crate works with very old versions of
`serde` which wasn't the case. This commit changes the versions to
minimal known-to-work values.
2022-09-13 16:19:07 +02:00
Tobin C. Harding 834bbf461f Introduce bitcoin-internals crate
Add a new crate `bitcoin-internals` to be used for internal code needed
by multiple soon-to-be-created crates.

Add the `write_err` macro to `bitcoin-internals`, nothing else.

This patch uses a `path` dependency which means `rust-bitcoin` cannot be
released in its current state, will need to be changed once we release
the `bitcoin-internals` crate on `crates.io`.
2022-09-13 08:59:57 +10:00
Tobin C. Harding 12c5fb042e Refactor import statements
Refactor import statements to adhere to core/other/crate with white
space between groups.

Refactor only, no logic changes.
2022-09-13 08:44:57 +10:00
Tobin C. Harding 022730bd8d Add a workspace to the top level directory.
Create a directory `bitcoin` and move into it the following as is with
no code changes:

- src
- Cargo.toml
- contrib
- test_data
- examples

Then do:

- Add a workspace to the repository root directory.
- Add the newly created `bitcoin` crate to the workspace.
- Exclude `fuzz` and `embedded` crates from the workspace.
- Add a contrib/test.sh script that runs contrib/test.sh in each
  sub-crate
- Fix the bitcoin/contrib/test.sh script
2022-09-13 08:44:57 +10:00