# Pre Wownero-rs Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) as described in [The Cargo Book](https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field).
## [0.17.0] - 2022-06-29
### Added
- Add serde support for `Amount` by [@TheCharlatan](https://github.com/TheCharlatan) ([#74](https://github.com/monero-rs/monero-rs/pull/74))
### Changed
- Rename feature `serde_support` into `serde` ([#94](https://github.com/monero-rs/monero-rs/pull/94))
- Update `base58-monero` requirement from 0.3 to 1 ([#91](https://github.com/monero-rs/monero-rs/pull/91))
- Update `serde-big-array` requirement from 0.3.2 to 0.4.1 ([#77](https://github.com/monero-rs/monero-rs/pull/77))
- Update `serde_json` requirement from <1.0.45 to 1 ([#84](https://github.com/monero-rs/monero-rs/pull/84))
- Update `sealed` requirement from 0.3 to 0.4 ([#73](https://github.com/monero-rs/monero-rs/pull/73))
### Fixed
- Check outputs of miner transaction ([#96](https://github.com/monero-rs/monero-rs/pull/96))
- Make `Key64` an array of 64 32 byte keys by [@Boog900](https://github.com/Boog900) ([#86](https://github.com/monero-rs/monero-rs/pull/86))
## [0.16.0] - 2021-11-15
### Added
- Method to check outputs with existing `SubKeyChecker` by [@busyboredom](https://github.com/busyboredom) ([#64](https://github.com/monero-rs/monero-rs/pull/64))
- Impl consensus Decodable and Encodable for Address ([#68](https://github.com/monero-rs/monero-rs/pull/68))
### Removed
- Remove the strict encoding support feature, this should be handled by crates using it ([#67](https://github.com/monero-rs/monero-rs/pull/67))
## [0.15.0] - 2021-09-27
### Added
- Derive `Hash` for `PrivateKey` ([#58](https://github.com/monero-rs/monero-rs/pull/58))
- Add MSRV badge in README ([#60](https://github.com/monero-rs/monero-rs/pull/60))
### Changed
- Modify Hash public API, fix clippy ([#59](https://github.com/monero-rs/monero-rs/pull/59))
## [0.14.0] - 2021-08-17
### Added
- Function for computing the signature hash of a transaction ([#41](https://github.com/monero-rs/monero-rs/pull/41))
- Length bounds check before allocating `Vec` ([#47](https://github.com/monero-rs/monero-rs/pull/47))
### Changed
- Don't use `io::Cursor` for implementing `Encodable` on `ExtraField` ([#49](https://github.com/monero-rs/monero-rs/pull/49))
- Trait `Encodable` is now sealed and cannot be implemented outside of the library to guarentee a correct, non-failable, implementation ([#50](https://github.com/monero-rs/monero-rs/pull/50))
### Fixed
- Activation of curve25519-dalek's serde feature ([#52](https://github.com/monero-rs/monero-rs/pull/52))
- Clippy errors ([#53](https://github.com/monero-rs/monero-rs/pull/53))
### Removed
- Unused `TxIn` variants ([#50](https://github.com/monero-rs/monero-rs/pull/50))
## [0.13.0] - 2021-06-02
### Added
- `Amount` structure, based on rust-bitcoin implementation ([#33](https://github.com/monero-rs/monero-rs/pull/33))
### Changed
- Replace `keccak-hash` with `tiny-keccak` ([#40](https://github.com/monero-rs/monero-rs/pull/40))
- New `check_output` API ([#42](https://github.com/monero-rs/monero-rs/pull/42))
- Switch CI from Travis to GitHub Actions
## [0.12.0] - 2021-04-29
### Added
- More types under `strict_encoding` wrapper ([`2dba2da`](https://github.com/monero-rs/monero-rs/commit/2dba2daee9e8bcc90079009279c17ae743794185))
- Add `TryFrom` impl. on keys and more `derive` on some types ([`dd9f1d9`](https://github.com/monero-rs/monero-rs/commit/dd9f1d9e52c31f56edddb111718285a786123bfa), [`06ed856`](https://github.com/monero-rs/monero-rs/commit/06ed856c1c898ec8ca0f3153a730234c98dfb8c4))
### Changed
- Update `base58` dependency to `0.3.0` ([`56c7a0a`](https://github.com/monero-rs/monero-rs/commit/56c7a0a517b0331a80103f0ccc7c1659ec4a6686))
- Change `pub use` over the library ([`0020a6e`](https://github.com/monero-rs/monero-rs/commit/0020a6eadff66c9b677d606868832cfd3944a804))
- Improve overall documentation ([`43c4926`](https://github.com/monero-rs/monero-rs/commit/43c4926b3492fa59f6564e15f9a7014e34b80ce1))
## [0.11.2] - 2021-03-30
### Fixed
- docs.rs compilation errors, add `feature(doc_cfg)` when building on [doc.rs](https://doc.rs)
## [0.11.1] - 2021-03-30
### Added
- Package metadata for generated documentation on [doc.rs](https://doc.rs) to enable feature badges
## [0.11.0] - 2021-03-29
### Added
- Amount recovery for `OwnedTxOut` with `ViewPair` ([#7](https://github.com/monero-rs/monero-rs/issues/7))
- New feature `strict_encoding_support`, disabled by default, which wraps some Encodable and Decodable types
### Changed
- Use `thiserror` on all `Error` types in the library
- Update `base58-monero` to `0.2.1` and upgrade all dependencies
- Simplify `Encodable` and `Decodable` traits based on the work done in [`rust-bitcoin/rust-bitcoin`](https://github.com/rust-bitcoin/rust-bitcoin), remove dependency `bytes`
- Improve README and Rust documentation
## [0.10.0] - 2020-10-16
### Added
- Support for transaction de/serialization with CLSAG signature ([#21](https://github.com/monero-rs/monero-rs/issues/21))
### Changed
- Rename `EcdhInfo::Bulletproof2` into `EcdhInfo::Bulletproof`
- Bump `curve25519-dalek` dependency to version `3`, with optional `serde` support
## [0.9.1] - 2020-09-10
### Added
- Implement `Display` trait for principal structures ([`5d9716f`](https://github.com/monero-rs/monero-rs/commit/5d9716fbdb08e5e6d37103e7fe2b4a45e4c5322b))
## [0.9.0] - 2020-09-04
### Changed
- Removed the deprecated `failure` crate in favour of `thiserror` ([#20](https://github.com/monero-rs/monero-rs/pull/20))
## [0.8.1] - 2020-07-20
### Fixed
- `RctType::Null` deserialization for `RctSigBase` by [@StriderDM](https://github.com/StriderDM) and [@h4sh3d](https://github.com/h4sh3d)
## [0.8.0] - 2020-07-20 [YANKED]
### Changed
- Replaced `std::error::Error` by `Failure` crate by [@sedddn](https://github.com/sedddn)
### Fixed
- Block (de)serialization by ([`db80e61`](https://github.com/monero-rs/monero-rs/commit/db80e61443b430e6da48d0e24f6afd0ef74b79ae))
## [0.7.0] - 2020-03-29
### Changed
- More code examples in documentation
### Fixed
- `check_outputs` behaviour, use ranges for sub-addresses in all cases, reported by [@ladislavdubravsky](https://github.com/ladislavdubravsky)
### Removed
- `SubKeyGenerator`, the implementation is not 100% tested and not needed for reading and parsing transactions
## [0.6.0] - 2020-03-22
### Added
- Methods to recover public and private keys on `OwnedTxOut` ([`c7b5e11`](https://github.com/monero-rs/monero-rs/commit/c7b5e11a0b6ec4c6fecde8e2c4628d9b894edd5b))
### Fixed
- Testnet and Stagenet magic bytes ([`aea9bc0`](https://github.com/monero-rs/monero-rs/commit/aea9bc0f5edd5981544e67b98c6f4211b7958eff))
- One-time key computation, thanks to [@gtklocker](https://github.com/gtklocker) and [@ladislavdubravsky](https://github.com/ladislavdubravsky) ([`c7b5e11`](https://github.com/monero-rs/monero-rs/commit/c7b5e11a0b6ec4c6fecde8e2c4628d9b894edd5b))
## [0.5.0] - 2020-01-16
### Changed
- Finer dependency versions
- Update `dalek` to version `2.0` by [@SWvheerden](https://github.com/SWvheerden)
- Improved documentation and code examples
### Removed
- `cdlyb` and `rlib` attributes ([`28db20c`](https://github.com/monero-rs/monero-rs/commit/28db20c690753e1beac7aaefec20542f042ab276))
## [0.4.0] - 2019-12-04
### Added
- General serde support under `serde_support` feature by [@SWvheerden](https://github.com/SWvheerden)
- Debug and clone derives to most structs by [@SWvheerden](https://github.com/SWvheerden)
## [0.3.0] - 2019-10-02
### Changed
- Update Rust to stable channel instead of nightly by [@vorot93](https://github.com/vorot93)
### Fixed
- Rust format and syntax warnings by [@vorot93](https://github.com/vorot93)
## [0.2.0] - 2019-04-25
### Added
- Serde support for `Address`
- Usage of `fixed-hash` for `cryptonote::hash`
- Code of Conduct
## [0.1.0] - 2019-03-15
### Added
- Initial release of the library
- CI pipeline
- De/serialization of Monero blocks and transactions
- Address and subaddress creation, de/serialization and validation
- Private keys and one-time keys creation, de/serialization and validation
[Unreleased]: https://github.com/monero-rs/monero-rs/compare/v0.17.0...HEAD
[0.17.0]: https://github.com/monero-rs/monero-rs/compare/v0.16.0...v0.17.0
[0.16.0]: https://github.com/monero-rs/monero-rs/compare/v0.15.0...v0.16.0
[0.15.0]: https://github.com/monero-rs/monero-rs/compare/v0.14.0...v0.15.0
[0.14.0]: https://github.com/monero-rs/monero-rs/compare/v0.13.0...v0.14.0
[0.13.0]: https://github.com/monero-rs/monero-rs/compare/v0.12.0...v0.13.0
[0.12.0]: https://github.com/monero-rs/monero-rs/compare/v0.11.2...v0.12.0
[0.11.2]: https://github.com/monero-rs/monero-rs/compare/v0.11.1...v0.11.2
[0.11.1]: https://github.com/monero-rs/monero-rs/compare/v0.11.0...v0.11.1
[0.11.0]: https://github.com/monero-rs/monero-rs/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/monero-rs/monero-rs/compare/v0.9.1...v0.10.0
[0.9.1]: https://github.com/monero-rs/monero-rs/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/monero-rs/monero-rs/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/monero-rs/monero-rs/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/monero-rs/monero-rs/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/monero-rs/monero-rs/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/monero-rs/monero-rs/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/monero-rs/monero-rs/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/monero-rs/monero-rs/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/monero-rs/monero-rs/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/monero-rs/monero-rs/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/monero-rs/monero-rs/releases/tag/v0.1.0