Commit Graph

193 Commits

Author SHA1 Message Date
Andrew Poelstra 4dee116b8a
delete PackedLockTime by aliasing it to LockTime
The next commit will be a mechanical s/PackedLockTime/LockTime/; this commit
seemed like the easiest way to facilitate that.
2022-12-11 19:00:01 +00:00
Andrew Poelstra fa81568fb6
locktime: add `FromHexStr` impl for `LockTime`
This will be tested in a later commit, when `PackedLockTime` is folded
into this type so all its tests apply to `LockTime`.
2022-12-11 18:59:24 +00:00
Andrew Poelstra 74ff4946e4
locktime: unify serde impls 2022-12-11 18:48:56 +00:00
Andrew Poelstra 32afe5ae48
Merge rust-bitcoin/rust-bitcoin#1400: Add trait `FromStrHex` for tuple structs with single `u32` member
e00dfa9806 impl FromHexStr for structs with single u32 member (connormullett)

Pull request description:

  Closes: #1112

   - Adds new trait `FromStrHex` with 2 methods: `from_hex_str` and `from_hex_str_no_prefix`
   -  Impl new trait on each tuple struct with single u32 member. eg `Time(u32)`

  As stated in the issue, grep through codebase with `\(u32\)` and `\(pub u32\)` to see all implementations and verify none were missed.

  NonStandardSighashType is an error type and should never be constructed from a hex string. Therefore, it has been omitted from this change.

  Tests are somewhat redundant, but cover 4 cases each. 2 happy paths, 1 for each function. 1 case for malformed/invalid hex input, and 1 for calling no_prefix without a prefix

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

Tree-SHA512: 221faef7fc1fa8fdb4cba79cfae317a0b63984937c345c6ca2287123a078f38911cdc07db7589a88b7bc6fbecf389e9bcff47952728410510ffcfc1857e0f91f
2022-12-11 18:47:32 +00:00
connormullett e00dfa9806 impl FromHexStr for structs with single u32 member
Adds new module `string` to be later converted to its own
crate. The module currently contains the FromHexStr trait and an error
type to be used for implementing hex parsing on types. This change
also adds implementations of FromHexStr for types with a single u32
member such as `Sequence(pub u32)`. All structs that match the
following regex have been given this implementation
`\(u32\)` and `\(pub u32\)`. All implementations have associated
unit tests matching all possible cases. NonStandardSighashType has
been ommitted from this change as it is an error and should not be
constructed using the methods added in this change.

Adds parse::hex_u32 for future use to be made generic to allow
different sizes of integers to be parsed from hex strings.

The error type FromHexError implements required traits such as
Display and std::error::Error
2022-12-11 00:01:58 -05:00
Andrew Poelstra c93e83e94b
Merge rust-bitcoin/rust-bitcoin#1428: Adds Network::from_core_arg and links it to Network::from_str
d7006ef80d Adds roundtrip tests for Network::from_core_arg (Sergi Delgado Segura)
bd1eb29f61 Adds Network::to_core_arg (Sergi Delgado Segura)

Pull request description:

  Comming from https://github.com/rust-bitcoin/rust-bitcoincore-rpc/pull/247

  `Network::from_str` only considers `rust-bitcoin` string as possible inputs to create a `Network` instance. This PR adds a new method to `Network`, `from_core_arg`, which is complementary to the existing `Network::to_core_arg`. This method allows the conversion between `bitcoind -network` string and `Network` variants.

  This also links `Network::from_str` to `Network::from_core_arg` so the default case on the former calls the latter, and an error is only returned if none of the cases match.

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

Tree-SHA512: 97a66f858a7d4a3642bdef9016457833cfc1181e276f7ead7c6b87f6fcdcb7c5d1cfdb4b621225b806bc5949c3c5cc6a32b7df934157542d7c79aa00a9e20f41
2022-12-08 15:12:40 +00:00
Andrew Poelstra ca563c4b27
Merge rust-bitcoin/rust-bitcoin#1234: Serde derive in tests
c822fcf435 Remove helper variables (Martin Habovstiak)
70d1a0348e Use serde derive rather than manual parsing (Martin Habovstiak)

Pull request description:

  Manual parsing Json is tedious and error-prone. It contained a bunch of
  `unwrap`s and was hard to read.

  This replaces manual Json parsing with serde_derive implementation.

  Closes https://github.com/rust-bitcoin/rust-bitcoin/issues/1231

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

Tree-SHA512: 0e1df6a62dc8438d67979a00658f8a2820135beebdd01d7275149b06feacd0d18accb86cecbf8c85f9a02ddc724575eaffff079b45cfe0e7765c8559c5eb03f7
2022-12-08 14:21:18 +00:00
Sergi Delgado Segura d7006ef80d Adds roundtrip tests for Network::from_core_arg 2022-12-08 07:19:22 -05:00
Sergi Delgado Segura bd1eb29f61 Adds Network::to_core_arg
This allows users to create `Network` instances from `bitcoind -chain` values
2022-12-08 06:33:24 -05:00
Tobin C. Harding 26be9ddd27 Make RBF rustdoc more scrary
In order to really bring the security risks of RBF to peoples attention
make the docs more scary.
2022-12-06 12:25:30 +11:00
Tobin C. Harding c9a49d5be7 blockdata: Improve content of rustdocs
Recently we (tcharding) do some mechanical improvements to the rustdocs
in the `blockdata` module without considering the content. On review a
bunch of improvements were suggested.

Improve the content of various rustdoc comments in the `blockdata`
module.

Suggested content came from reviewers, all mistakes are my own :)
2022-12-06 12:25:30 +11:00
Tobin C. Harding e1e5974065 consensus: Improve rustdocs
Do an audit of the `consensus` module and clean up rustdocs.
2022-12-06 12:25:30 +11:00
Tobin C. Harding c553299ace Remove uninformative code comments
The comments add no value to the code, remove them.
2022-12-06 12:25:30 +11:00
Tobin C. Harding bbd39e5ecc Use longer column width
Reduce the number of lines of code by using a longer column width, 100
as is more-or-less standard in this repo.

This patch only changes column width (line length), no other changes.
2022-12-06 12:25:30 +11:00
Tobin C. Harding 31740710ee blockdata: Improve rustdocs
Do an audit of the `blockdata` module and clean up rustdocs.
2022-12-06 12:25:26 +11:00
Martin Habovstiak c822fcf435 Remove helper variables 2022-12-05 22:23:44 +01:00
Martin Habovstiak 70d1a0348e Use serde derive rather than manual parsing
Manual parsing Json is tedious and error-prone. It contained a bunch of
`unwrap`s and was hard to read.

This replaces manual Json parsing with serde_derive implementation.

Closes #1231
2022-12-05 22:23:36 +01:00
Andrew Poelstra 52fbb043b6
Merge rust-bitcoin/rust-bitcoin#1254: Consensus encoding based serialization
1a2cf2681d Implement consensus encoding adapter for serde (Martin Habovstiak)
a6ecc58a5e Add `put_bytes_min` and `space_remaining` methods (Martin Habovstiak)

Pull request description:

  In some protocols it is preferred to serialize consensus-encodable types
  using consensus encoding. E.g. serialize `Transaction` as hex-encoded
  string in Json in Bitcoin Core RPC protocol. This change provides
  adapter to make this easier.

  The adapter allows providing custom byte-to-string encoder for more
  exotic cases and provides a hex implementation which should be useful in
  majority of the cases.

  Should help with #765

  Based on #1252

  Required by #1234

ACKs for top commit:
  tcharding:
    ACK 1a2cf2681d
  apoelstra:
    ACK 1a2cf2681d

Tree-SHA512: 96e10cf6ea0e7dfecfb58ee97453e0e7c8a2cfbb8af1e73a23c3afb67b985b394976361ac237528991fbb7344cc9f24644869199008245a91838309aff34bb97
2022-12-05 16:25:55 +00:00
Andrew Poelstra 4fccd3fb84
Merge rust-bitcoin/rust-bitcoin#1437: Add log2 to Work
df90c50242 Add log2 to Work (Jiri Jakes)

Pull request description:

  Adds method `Work::log2()` providing value equivalent to Bitcoin Core's `log2_work` in its logs. Fixes #1326.

  Questions:

  - The original issue (#1326) also suggests to add log2 to Target but it does not seem to be meaningful, does it? Bitcoin Core, to which the issue refers, also displays only log2 of work.
  - Although work should not be 0, the type allows it. In this case, log2 would return -inf. I think we could leave it like that but if there are suggestions to deal with it in a different way, please let me know.

ACKs for top commit:
  Kixunil:
    ACK df90c50242
  tcharding:
    ACK df90c50242
  apoelstra:
    ACK df90c50242

Tree-SHA512: 24e83c849ea3e16cad6f1636920883967cdac90b1b98ab19e86d1a5d0ac4585079740b54c1315afecabc1943d29a8b94316e3586bd2d10f1b61cc5cf7ad5b273
2022-12-03 21:19:38 +00:00
Jiri Jakes df90c50242 Add log2 to Work
Bitcoin Core displays log2 of chain work in certain situations. This
new log2 method returns equivalent value.
2022-12-03 17:24:41 +01:00
Andrew Poelstra 29704f2872
Merge rust-bitcoin/rust-bitcoin#1410: Change `max_money` to a constant.
e9dffb1b7b Change `max_money` to a constant. (Martin Habovstiak)

Pull request description:

  The value is statically known which is better expressed as a constant. Also allows usage in const context.

ACKs for top commit:
  apoelstra:
    ACK e9dffb1b7b
  tcharding:
    ACK e9dffb1b7b
  ariard:
    ACK e9dffb1
  sanket1729:
    ACK e9dffb1b7b

Tree-SHA512: b9b80d573531fe75dce22e185a1c84b2885160334418d1cfbd7279684fd4229c3c6c4041d3a3badb3652c5723e90ff52d3c761cbc3bff7b73978776694a67422
2022-12-03 14:04:53 +00:00
Andrew Poelstra af1d22b9f9
Merge rust-bitcoin/rust-bitcoin#1430: Remove no_run
13d94cbc47 Remove no_run (Tobin C. Harding)

Pull request description:

  `no_run` is not needed since we already mark this up as `bash` which rustc doesn't run when running examples.

  While the keyword `bash` is not currently supported it may well be in the future and since only the `rust` keyword causes code to run any other string is effectively a wildcard, `no_run` is therefore meaningful only as a convention. Lets keep `bash` in case support is added later on.

  cc sr-gi

ACKs for top commit:
  sr-gi:
    ACK 13d94cbc47
  Kixunil:
    ACK 13d94cbc47
  sanket1729:
    ACK 13d94cbc47
  apoelstra:
    ACK 13d94cbc47

Tree-SHA512: 90cbe8c5ea30577fc148d8e8b388008ea7f6c4975ea8b9e249e6058de901afca084d59e6a89eb9bda0a8e3112fb89336b622acd23046299c5e5ad7723ae26148
2022-12-02 13:52:31 +00:00
Martin Habovstiak 1a2cf2681d Implement consensus encoding adapter for serde
In some protocols it is preferred to serialize consensus-encodable types
using consensus encoding. E.g. serialize `Transaction` as hex-encoded
string in Json in Bitcoin Core RPC protocol. This change provides
adapter to make this easier.

The adapter allows providing custom byte-to-string encoder for more
exotic cases and provides a hex implementation which should be useful in
majority of the cases.

Should help with #765
2022-12-02 10:48:05 +01:00
sanket1729 3a923980e1 Hotfix: Fix broken serde
My local scripts did not test serde feature on merge commit. While
merging 734, I accidently broke the serde feature on latest master. This
PR fixes it.
2022-12-01 15:57:37 -08:00
sanket1729 df57a195c1
Merge rust-bitcoin/rust-bitcoin#724: Serde regression tests
962abcc963 Add serde regression tests (Tobin Harding)

Pull request description:

  Attempts to add regression tests for _all_ types defined in `rust-bitcoin` that implement `Serialize`/`Deserialize`.

  - Add a `tests` directory and implement regression tests in there
  - Use files for input hex and output bincode to reduce source file clutter
  - Copy test block and `include_bytes!` usage from RCasatta's [PR](https://github.com/rust-bitcoin/rust-bitcoin/pull/750)
  - Uses Kixunil's macro suggested below
  - Adds a single regression test to `util/taproot.rs` for private types

  ## Note to reviewers
  - Uses JSON for opcodes in a separate file (`tests/regression_opcodes.rs`), for all other tests uses bincode.
  - Bypasses the order issue for maps by only serializing maps with a single element - is this correct?

  Fixes #723

ACKs for top commit:
  apoelstra:
    ACK 962abcc963
  sanket1729:
    ACK 962abcc963. This has been open for a long time. Merging this in the interest of progress.

Tree-SHA512: e34e48e1c56fab5898bc74e7fb867435ed387d828dd3daf0c7d6df8f305e1da6883e91487115ac428618eb7d95bd16aa2cd209ca219684959bc95587ef0b4083
2022-12-01 15:29:12 -08:00
sanket1729 22c6406c2b
Merge rust-bitcoin/rust-bitcoin#1417: Move `base58` to the crate root
4c8570b512 base58: Run formatter (Tobin C. Harding)
2780e6cdaa Move base58 module to crate root (Tobin C. Harding)

Pull request description:

  Move `base58` module to the carte root, direct `rustfmt` to not format the digits array. Run formatter as a separate patch.

ACKs for top commit:
  apoelstra:
    ACK 4c8570b512
  sanket1729:
    ACK 4c8570b512

Tree-SHA512: 3ab7afe089b9866a59f3f67c74c3e6657ca51d2d0ea1aaee0218a400b90826d36eaca7d491006a9448359ae3de5755d20b2d2df71e0fa3d6497fbaca270dcf42
2022-12-01 15:12:34 -08:00
Tobin C. Harding 13d94cbc47 Remove no_run
`no_run` is not needed since we already mark this up as `bash` which
rustc doesn't run when running examples.

While the keyword `bash` is not currently supported it may well be in
the future and since only the `rust` keyword causes code to run any
other string is effectively a wildcard, `no_run` is therefore meaningful
only as a convention. Lets keep `bash` in case support is added later on.
2022-12-02 07:25:41 +11:00
Andrew Poelstra 4cc4178b0c
Merge rust-bitcoin/rust-bitcoin#1412: Implement `Script::p2pk_public_key(&self) -> Option<PublicKey>`
25f781bef3 Implement p2pk_public_key + tests (connormullett)

Pull request description:

  closes #1408

  Adds logic to extract a `PublicKey` (if able) from a p2pk script

ACKs for top commit:
  tcharding:
    ACK 25f781bef3
  apoelstra:
    ACK 25f781bef3
  Kixunil:
    ACK 25f781bef3

Tree-SHA512: 139f588ca4b6ccc45f8df0b35c19bebae66cb7b07cbad22bbf5d3059118ed54c8e1716d64dc528de59c7c8f4eb684944ce029fbce97a303f385281e990fc3bf0
2022-12-01 13:47:21 +00:00
Tobin C. Harding 4c8570b512 base58: Run formatter
Run `cargo +nightly fmt` and commit the changes to the `base58` module.
No manual changes, only those done by the formatter.
2022-12-01 09:56:34 +11:00
Tobin C. Harding 2780e6cdaa Move base58 module to crate root
In preparation for removing the `util` module move the `base58` module
to the crate root. This is likely not the final resting place for this
module but it is a step in the right direction.

Includes addition of rustfmt attribute to skip formatting the digits
array. No other changes to the `base58` module.
2022-12-01 09:56:33 +11:00
connormullett 25f781bef3 Implement p2pk_public_key + tests
For some applications, such as block explorers, it's useful to be able
to obtain the public key used in case of P2PK. This is considered
general enough for addition into bitcoin library,
so this change adds it.

The public key is returned only when it's valid and the script is P2PK.
To avoid duplicating the logic checking whether a script is P2PK the
logic is moved to a new p2pk_pubkey_bytes() method which returns raw
bytes and is then called from both is_p2pk() and p2pk_public_key()
2022-11-30 13:51:59 -05:00
Tobin C. Harding dce88b09ff taproot: Run the formatter
Run `cargo +nightly fmt` and commit changes to the `taproot` module.

No manual changes, only those introduced by `rustfmt`.
2022-11-30 12:04:20 +11:00
Tobin C. Harding db5c8fe61c Move the taproot module to crate root
We are trying to flatten the `util` module. The `taproot` module can
live in the crate root. If/when we create a `crypto` module/crate we may
wish to pull some stuff out of this module but for now moving it gets us
closer to removing `util` without making the directory structure any
worse.

Includes adding rustfmt attributes to skip formatting of macros.
2022-11-30 12:03:39 +11:00
Andrew Poelstra 9266b1bbe0
Merge rust-bitcoin/rust-bitcoin#1260: Create `crypto` module
2df51dae15 Create crypto module (Tobin C. Harding)

Pull request description:

  Done as part of [util flattening](https://github.com/rust-bitcoin/rust-bitcoin/issues/639).

  Create a `crypto` module and move into it (out of `util`):
  - ecdsa
  - schnorr
  - key

  After review, this PR now includes some type re-names
  - EcdsaSig -> ecdsa::Signature
  - SchnorrSig -> schnorr::Signature
  - EcdsaSigError -> ecdsa::Error
  - SchnorrSigError -> schnorr::Error
  - InvalidSchnorrSigSize -> InvalidSignatureSize  (this is an error enum variant)

ACKs for top commit:
  apoelstra:
    ACK 2df51dae15
  sanket1729:
    ACK 2df51dae15

Tree-SHA512: 7cf63d51ed5fdc737cd59767d9bb96b1e3501634e3aee855493f6a51ad5c5397ce4b25c77f9929abd70d6ceb351fc6520e835da108f4c9a46df5b9c2b52ca6b3
2022-11-29 15:33:18 +00:00
Andrew Poelstra 410b820814
Merge rust-bitcoin/rust-bitcoin#1416: Add rand feature flag to the example documentation
f7a6d17143 Add rand feature flag to the example documentation (yancy)

Pull request description:

  It's confusing trying to follow the documentation [here](https://docs.rs/bitcoin/latest/bitcoin/util/address/index.html) unless you know to enable the `rand` feature flag.  This PR updates the docs so people know to enable the flag.

  ```
  22:35 < control> hello, how can i generate a simple wallet address using rust bitcoin? cant find working example
  22:45 < andytoshi> control: do you have a private key?
  22:45 < andytoshi> what kind of address do you want to generate?
  22:46 < andytoshi> my guess would be that you want to use bdk rather than rust-bitcoin directl
  22:48 < control> P2PKH address and generate private key. just as simple as bit library in python does
  22:52 < control> im trying to run this example
  22:52 < control> https://docs.rs/bitcoin/latest/bitcoin/util/address/index.html
  22:52 < control> but it says ^^^^ could not find `rand` in `secp256k1`
  ```

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

Tree-SHA512: 6d94f8ffa7797d1e7720a840d4f8bb0ac274507118597dff60631ad3d28dbe57e2341b87d6101e2a9f5fbcc2b1f0beb6d06f9dde48a480cb10a9a45c887f83a4
2022-11-29 14:22:18 +00:00
yancy f7a6d17143 Add rand feature flag to the example documentation 2022-11-28 17:10:24 +01:00
Andrew Poelstra c11645b7e5
amount: use kani to check some arithmetic properties
Kani can't really handle string processing, and appears to be unable
to check integer multiplication (for now), but we do several checks
for addition and subtraction, and conversion between signedness,
that Kani can easily prove.
2022-11-27 19:01:26 +00:00
Martin Habovstiak e9dffb1b7b Change `max_money` to a constant.
The value is statically known which is better expressed as a constant.
Also allows usage in const context.
2022-11-22 21:08:40 +01:00
Tobin C. Harding 2df51dae15 Create crypto module
Done as part of flattening util.

Currently in `util` module we have a bunch of modules that provide
cryptography related functionality.

Create a `crypto` module and move into it the following:

- ecdsa
- schnorr
- key

To improve uniformity and ergonomics, do the following re-names while we
are at it:

- EcdsaSig -> ecdsa::Signature
- SchnorrSig -> schnorr::Signature
- EcdsaSigError -> ecdsa::Error
- SchnorrSigError -> schnorr::Error
- InvalidSchnorrSigSize -> InvalidSignatureSize  (this is an error enum variant)
2022-11-22 14:09:33 +11:00
Andrew Poelstra ac583202cf
Merge rust-bitcoin/rust-bitcoin#1397: Add Network::to_core_arg() method
519db4d951 add Network::to_core_arg() method (connormullett)

Pull request description:

  closes: #1207

  Adds converting `Network` to its `bitcoind` equivalent.
  The arguments for -chain can be found in the documentation and is one of the following:
  main, test, signet, regtest

ACKs for top commit:
  apoelstra:
    ACK 519db4d951
  Kixunil:
    ACK 519db4d951

Tree-SHA512: 5fd805d654f7c30f87ff877fe90e19490d0deb73b46ce87cc6b43d30595eb9d2de3f646f58a5d72180c3e8cc6a9b614bfe6753ecd6c21b8d193a8d862e3f887f
2022-11-21 15:48:53 +00:00
Andrew Poelstra 1e4b5e34ae
Merge rust-bitcoin/rust-bitcoin#1404: Check for rustdocs build warnings in CI
108a1f73ca Fail CI if docs build throws warnings (Tobin C. Harding)
b014f0fdcb Fix rustdocs build warnings (Tobin C. Harding)

Pull request description:

  Currently we do not fail the CI script if the docs build throws warnings, since we are a group of super anal, easily triggered, code cleanliness obsessed devs this causes a mild rash to develop on the lower back [0]. We can easily fix this by checking for build warnings in CI.

  [0] - Amusingly my rash has been playing up since Friday but I thought I'd fixed the warnings in an open PR someplace so I was ignoring it, seeing Kixunil's [issue](https://github.com/rust-bitcoin/rust-bitcoin/issues/1403) this morning prompted me to fix it :)

  Fix #1403

ACKs for top commit:
  Kixunil:
    ACK 108a1f73ca
  apoelstra:
    ACK 108a1f73ca

Tree-SHA512: 0f86c318b2ec8bf7aa6a0d0f355f8fe8e3eb8ad5eb74d95f8dab882d6729c386c3e0ef4cc2378645e15460ff2b9b47d66e3603958f8b188f5e2b07272739d755
2022-11-21 15:39:03 +00:00
Tobin C. Harding 108a1f73ca Fail CI if docs build throws warnings
Convert all rustdocs build warnings to errors using `-D warnings` and
exit the script with 1 to signal the error.

While we are at it use `--all-features` instead of explicit feature list
when building docs. Without this the docs build fails with:

  error: too many file operands
2022-11-21 10:35:49 +11:00
Tobin C. Harding b014f0fdcb Fix rustdocs build warnings
Building the docs throws a bunch of warnings of form

  warning: unclosed HTML tag ...

Add code ticks to remove the warnings.
2022-11-21 09:30:04 +11:00
connormullett 519db4d951 add Network::to_core_arg() method 2022-11-18 23:12:10 -05:00
Andrew Poelstra 1696038313
Merge rust-bitcoin/rust-bitcoin#1399: Drop Network arg from max_money()
64495cc5fe Drop Network arg from max_money() (Antoine Riard)

Pull request description:

  Amount of coins available stay in the same across Bitcoin network: signet, testnet, mainet. From my understanding this is a leftover from some potential multi-chain support.

  For more context: https://github.com/lightningdevkit/rust-lightning/pull/1839#discussion_r1019753069

  If there is already an existent PR, it can be closed, however didn't find one.

ACKs for top commit:
  apoelstra:
    ACK 64495cc5fe
  tcharding:
    ACK 64495cc5fe

Tree-SHA512: 929011ee73c5eda903fb0140438ed5e88c8f5b7378036a87a6a660a8b9138bf204bf59a0ba822c0cd98e37e97d2d0dbbf8c9893a834da9acdf817ba43a5ed5b6
2022-11-19 00:05:52 +00:00
Andrew Poelstra 99a28db99d
Merge rust-bitcoin/rust-bitcoin#1353: Enable formating of the `network` module
e04a7a926d network: Run cargo fmt (Tobin C. Harding)
dc33c7999f Enable formatting of the network module (Tobin C. Harding)
81f69e846b Exclude from formatting stuff in the network module (Tobin C. Harding)
408d7737fb Run cargo fmt (Tobin C. Harding)
1ecf09359b Add local variable to reduce line length (Tobin C. Harding)
b2e74bc050 Exclude long function call (Tobin C. Harding)
ff5a80dbd3 Exclude formatting of function fmt_satoshi_in (Tobin C. Harding)
308a12b7cf Exclude array from formatting (Tobin C. Harding)
fb7ff46ccc Improve crate root re-exports (Tobin C. Harding)

Pull request description:

  The `network` module is not currently included in formatting. Also, at this point in time not much is happening in the `network` module so formatting it should not cause too many merge conflicts with other in-progress PRs.

  The first 3 patches are formatting preparation of the repo, the next 2 are formatting preparation of the `network` module. The last patch is the result of running `cargo +nightly fmt`. Can one reviewer please verify the last patch consists only of `rustfmt` changes by running the command on their branch. Thanks

  cc luckysori :)

ACKs for top commit:
  apoelstra:
    ACK e04a7a926d

Tree-SHA512: 49b2873f0bfdd448df97073b462fa860c85b7f3c3094fdb0e16fd86aa467156ea8b2ceec61e2ee99848802cd171fd8abbc17e45c66672889a37c413fa4bea636
2022-11-18 23:55:42 +00:00
Andrew Poelstra 349a8a5b4e
Merge rust-bitcoin/rust-bitcoin#1284: Import bitcoin hashes
9674bf29fe hashes: Fix clippy warnings (Tobin C. Harding)
b9643bf3e9 Import bitcoin_hashes crate into hashes (Tobin C. Harding)
580feab3f9 internals: Add CHANGELOG file (Tobin C. Harding)
bae64e156e Move CHANGELOG to bitcoin crate (Tobin C. Harding)
9a2c856be6 Update gitignore file (Tobin C. Harding)

Pull request description:

  #1337 was split out of this in an attempt to help review, I think we can merge this one though now it has some traction.

  We would like to bring the `bitcoin_hashes` crate into the `rust-bitcoin` repository. https://github.com/rust-bitcoin/rust-bitcoin/issues/550#issuecomment-1248071843

  Import `bitcoin_hashes` crate into `hashes`.

  Commit hash that was tip of `bitcoin_hashes` at time of import:

       commit 2a78c250f78d391599040223870a4d1d6f6f5482

  Please note the commit history of `bitcoin_hashes` is only preserved on the soon-to-be-archived `bitcoin_hashes` repository.

ACKs for top commit:
  sanket1729:
    ACK 9674bf29fe. Did my best to review the CI code, it looks good, and seems like we are testing everything when we add "hashes" to the root level `./contrib/tests.sh`. I would like other reviewers to confirm the same.
  apoelstra:
    ACK 9674bf29fe

Tree-SHA512: db3ce6adeb38430c5a9f372da16be9fb048c2e5cff646b701139fb4b5fa76e10261432284ede7fd139b75cd69bb124d55973ceb7eccaa996226a7be4cad9b68a
2022-11-18 18:32:41 +00:00
Antoine Riard 64495cc5fe Drop Network arg from max_money()
Amount of coins available stay in the same across Bitcoin network:
signet, testnet, mainet. From my understanding this is a leftover
from some potential multi-chain support.
2022-11-17 21:50:03 -05:00
Tobin C. Harding e04a7a926d network: Run cargo fmt
We just removed the `bitcoin/src/network/` exclude from `rustfmt` config
file. Run the command `cargo +nightly fmt`.

No other changes than those introduced by `rustfmt`.
2022-11-18 13:11:09 +11:00
Tobin C. Harding 81f69e846b Exclude from formatting stuff in the network module
In preparation for formatting the `network` module; improve the
formatting, and direct `rustfmt` to skip formatting, on a bunch of
byte arrays.
2022-11-18 13:11:09 +11:00