rust-bitcoin-unsafe-fast/primitives
Tobin C. Harding ab4ea7c13d
Enforce the MAX_MONEY invariant in amount types
Enforcing the MAX_MONEY invariant is quite involved because it means
multiple things:

- Constructing amounts is now fallible
- Converting from unsigned to signed is now infallible
- Taking the absolute value is now infallible
- Integer overflow is illuminated in various places

Details:

- Update from_sat to check the invariant
- Fix all docs including examples
- Use the unchecked constructor in test code
- Comment any other use of the unchecked constructor
- Deprecate unchecked_abs
- Fail serde (using the horrible string error variant)
- Try not to use the unchecked constructor in rustdocs, no need to encourage unsuspecting users to use it.
- Use ? in rustdoc examples (required by Rust API guidlines)
- Remove TryFrom<Amount> for SignedAmount because the conversion is now infallible. Add a From impl.
- Fix the arbitrary impls
- Maintain correct formatting
- Remove private check_max function as its no longer needed
2025-03-13 09:07:14 +11:00
..
contrib Remove rust-ordered dependency 2025-02-18 13:36:07 +11:00
src Enforce the MAX_MONEY invariant in amount types 2025-03-13 09:07:14 +11:00
CHANGELOG.md Bump version of bitcoin-primitives to 0.101.0 2024-11-15 10:58:46 +11:00
Cargo.toml Remove references to cfg(mutate) from lint allow - no longer allowed 2025-03-10 12:45:57 +08:00
README.md Move Witness to primitives 2024-10-18 14:02:03 +11:00

README.md

Rust Bitcoin - primitive types.

This crate provides primitive data types that are used throughout the rust-bitcoin ecosystem.

Semver compliance

Functions marked as unstable (e.g. foo__unstable) are not guaranteed to uphold semver compliance. They are primarily provided to support rust-bitcoin.

Minimum Supported Rust Version (MSRV)

This library should always compile with any combination of features on Rust 1.63.0.

Licensing

The code in this project is licensed under the Creative Commons CC0 1.0 Universal license. We use the SPDX license list and SPDX IDs.