diff --git a/ci/pin-msrv.sh b/ci/pin-msrv.sh index 2e1a09e59..5f8613d26 100755 --- a/ci/pin-msrv.sh +++ b/ci/pin-msrv.sh @@ -16,8 +16,7 @@ cargo update -p home --precise "0.5.5" cargo update -p proptest --precise "1.2.0" cargo update -p url --precise "2.5.0" cargo update -p tokio --precise "1.38.1" -cargo update -p tokio-util --precise "0.7.11" -cargo update -p indexmap --precise "2.5.0" +cargo update -p reqwest --precise "0.12.4" cargo update -p security-framework-sys --precise "2.11.1" cargo update -p csv --precise "1.3.0" cargo update -p unicode-width --precise "0.1.13" diff --git a/crates/bitcoind_rpc/CHANGELOG.md b/crates/bitcoind_rpc/CHANGELOG.md index 6c0c8c681..60ad59f8f 100644 --- a/crates/bitcoind_rpc/CHANGELOG.md +++ b/crates/bitcoind_rpc/CHANGELOG.md @@ -7,6 +7,15 @@ Contributors do not need to change this file but do need to add changelog detail 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). +## [bitcoind_rpc-0.19.0] + +## Changed + +- feat(rpc)!: Update Emitter::mempool to support evicted_at #1857 +- Change Emitter::mempool to return MempoolEvents which contain mempool-eviction data. +- Change Emitter::client to have more relaxed generic bounds. C: Deref, C::Target: RpcApi are the new bounds. +- deps: bump `bdk_core` to 0.5.0 + ## [bitcoind_rpc-0.18.0] ### Added @@ -21,3 +30,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [bitcoind_rpc-0.17.1]: https://github.com/bitcoindevkit/bdk/releases/tag/bitcoind_rpc-0.17.1 [bitcoind_rpc-0.18.0]: https://github.com/bitcoindevkit/bdk/releases/tag/bitcoind_rpc-0.18.0 +[bitcoind_rpc-0.19.0]: https://github.com/bitcoindevkit/bdk/releases/tag/bitcoind_rpc-0.19.0 diff --git a/crates/bitcoind_rpc/Cargo.toml b/crates/bitcoind_rpc/Cargo.toml index 7e5eda93e..727920982 100644 --- a/crates/bitcoind_rpc/Cargo.toml +++ b/crates/bitcoind_rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_bitcoind_rpc" -version = "0.18.0" +version = "0.19.0" edition = "2021" rust-version = "1.63" homepage = "https://bitcoindevkit.org" @@ -18,7 +18,7 @@ workspace = true [dependencies] bitcoin = { version = "0.32.0", default-features = false } bitcoincore-rpc = { version = "0.19.0" } -bdk_core = { path = "../core", version = "0.4.1", default-features = false } +bdk_core = { path = "../core", version = "0.5.0", default-features = false } [dev-dependencies] bdk_bitcoind_rpc = { path = "." } diff --git a/crates/chain/CHANGELOG.md b/crates/chain/CHANGELOG.md index 2c5e1452f..81d090d90 100644 --- a/crates/chain/CHANGELOG.md +++ b/crates/chain/CHANGELOG.md @@ -7,10 +7,37 @@ Contributors do not need to change this file but do need to add changelog detail 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). +## [chain-0.22.0] + +### Added + +- Introduce evicted-at/last-evicted timestamps #1839 +- Add method for constructing TxGraph from a ChangeSet #1930 +- docs: Architectural Decision Records #1592 +- Introduce canonicalization parameters #1808 +- Add conversion impls for CanonicalTx to Txid/Arc. +- Add ChainPosition::is_unconfirmed method. + +### Changed + +- Make full-scan/sync flow easier to reason about. #1838 +- Change `TxGraph` to track `last_evicted` timestamps. This is when a transaction is last marked as missing from the mempool. +- The canonicalization algorithm now disregards transactions with a `last_evicted` timestamp greater than or equal to it's `last_seen` timestamp, except when a canonical descendant exists due to rules of transitivity. #1839 +- deps: bump miniscript to 12.3.1 #1924 + +### Fixed + +- Fix canonicalization mess-up when transactions that conflict with itself are inserted. #1917 + +### Removed + +- Remove `apply_update_at` as we no longer need to apply with a timestamp after-the-fact. + ## [chain-0.21.1] ### Changed - Minor updates to fix new rustc 1.83.0 clippy warnings #1776 -[chain-0.21.1]: https://github.com/bitcoindevkit/bdk/releases/tag/chain-0.21.1 \ No newline at end of file +[chain-0.21.1]: https://github.com/bitcoindevkit/bdk/releases/tag/chain-0.21.1 +[chain-0.22.0]: https://github.com/bitcoindevkit/bdk/releases/tag/chain-0.22.0 diff --git a/crates/chain/Cargo.toml b/crates/chain/Cargo.toml index 8ff444385..ffe964c80 100644 --- a/crates/chain/Cargo.toml +++ b/crates/chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_chain" -version = "0.21.1" +version = "0.22.0" edition = "2021" rust-version = "1.63" homepage = "https://bitcoindevkit.org" @@ -17,7 +17,7 @@ workspace = true [dependencies] bitcoin = { version = "0.32.0", default-features = false } -bdk_core = { path = "../core", version = "0.4.1", default-features = false } +bdk_core = { path = "../core", version = "0.5.0", default-features = false } serde = { version = "1", optional = true, features = ["derive", "rc"] } miniscript = { version = "12.3.1", optional = true, default-features = false } diff --git a/crates/core/CHANGELOG.md b/crates/core/CHANGELOG.md index 6252a80dd..71961f9c6 100644 --- a/crates/core/CHANGELOG.md +++ b/crates/core/CHANGELOG.md @@ -9,8 +9,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## [core-0.5.0] + +### Added + +- Add `FullScanRequest::builder_at` and `SyncRequest::builder_at` methods which are the non-std version of the `..Request::builder` methods. +- Add `TxUpdate::evicted_ats` which tracks transactions that have been replaced and are no longer present in mempool. +- Add `SpkWithExpectedTxids` in `spk_client` which keeps track of expected `Txid`s for each `spk`. +- Add `SyncRequestBuilder::expected_txids_of_spk` method which adds an association between `txid`s and `spk`s. - test: add tests for `Merge` trait #1738 +### Changed + +- Make full-scan/sync flow easier to reason about. #1838 +- Change `FullScanRequest::builder` and `SyncRequest::builder` methods to depend on `feature = "std"`. +This is because requests now have a `start_time`, instead of specifying a `seen_at` when applying the update. +- Change `TxUpdate` to be `non-exhaustive`. +- Change `TxUpdate::seen_ats` field to be a `HashSet` of `(Txid, u64)`. This allows a single update to have multiple `seen_at`s per tx. +- Introduce `evicted-at`/`last-evicted` timestamps #1839 + ## [core-0.4.1] ### Changed @@ -18,3 +35,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Minor updates to fix new rustc 1.83.0 clippy warnings #1776 [core-0.4.1]: https://github.com/bitcoindevkit/bdk/releases/tag/core-0.4.1 +[core-0.5.0]: https://github.com/bitcoindevkit/bdk/releases/tag/core-0.5.0 diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index fae5e512d..1fdda29f8 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_core" -version = "0.4.1" +version = "0.5.0" edition = "2021" rust-version = "1.63" homepage = "https://bitcoindevkit.org" diff --git a/crates/electrum/CHANGELOG.md b/crates/electrum/CHANGELOG.md index f89e86ed1..894d9dd3f 100644 --- a/crates/electrum/CHANGELOG.md +++ b/crates/electrum/CHANGELOG.md @@ -7,10 +7,26 @@ Contributors do not need to change this file but do need to add changelog detail 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). +## [electrum-0.22.0] + +### Fixed + +- Fix `bdk_electrum` handling of negative spk-history height. #1837 + +### Changed + +- Make full-scan/sync flow easier to reason about. #1838 +- Change `bdk_electrum` to understand `SpkWithExpectedTxids`. #1839 +- deps: bump `electrum-client` to 0.23.1 +- deps: bump `bdk_core` to 0.5.0 + ## [electrum-0.21.0] -- Bump crate MSRV to 1.75.0 +### Changed + +- Bump crate MSRV to 1.75.0 #1803 - deps: bump `electrum-client` to 0.23.0 +- add test for checking that fee calculation is correct #1685 ## [electrum-0.20.1] @@ -19,4 +35,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Minor updates to fix new rustc 1.83.0 clippy warnings #1776 [electrum-0.20.1]: https://github.com/bitcoindevkit/bdk/releases/tag/electrum-0.20.1 -[electrum-0.21.0]: https://github.com/bitcoindevkit/bdk/releases/tag/electrum-0.21.0 \ No newline at end of file +[electrum-0.21.0]: https://github.com/bitcoindevkit/bdk/releases/tag/electrum-0.21.0 +[electrum-0.22.0]: https://github.com/bitcoindevkit/bdk/releases/tag/electrum-0.22.0 diff --git a/crates/electrum/Cargo.toml b/crates/electrum/Cargo.toml index e3918c18d..261671fd2 100644 --- a/crates/electrum/Cargo.toml +++ b/crates/electrum/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_electrum" -version = "0.21.0" +version = "0.22.0" edition = "2021" homepage = "https://bitcoindevkit.org" repository = "https://github.com/bitcoindevkit/bdk" @@ -13,8 +13,8 @@ readme = "README.md" workspace = true [dependencies] -bdk_core = { path = "../core", version = "0.4.1" } -electrum-client = { version = "0.23", features = [ "proxy" ], default-features = false } +bdk_core = { path = "../core", version = "0.5.0" } +electrum-client = { version = "0.23.1", features = [ "proxy" ], default-features = false } [dev-dependencies] bdk_testenv = { path = "../testenv" } diff --git a/crates/esplora/CHANGELOG.md b/crates/esplora/CHANGELOG.md index af09ad9c6..a8d49f639 100644 --- a/crates/esplora/CHANGELOG.md +++ b/crates/esplora/CHANGELOG.md @@ -7,10 +7,21 @@ Contributors do not need to change this file but do need to add changelog detail 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). +## [esplora-0.21.0] + +### Changed + +- Make full-scan/sync flow easier to reason about. #1838 +- Change `bdk_esplora` to understand `SpkWithExpectedTxids`. #1839 +- deps: bump `esplora-client` to 0.12.0 +- deps: bump `bdk_core` to 0.5.0 +- deps: remove optional dependency on `miniscript` + ## [esplora-0.20.1] ### Changed - Minor updates to fix new rustc 1.83.0 clippy warnings #1776 -[esplora-0.20.1]: https://github.com/bitcoindevkit/bdk/releases/tag/esplora-0.20.1 \ No newline at end of file +[esplora-0.20.1]: https://github.com/bitcoindevkit/bdk/releases/tag/esplora-0.20.1 +[esplora-0.21.0]: https://github.com/bitcoindevkit/bdk/releases/tag/esplora-0.21.0 diff --git a/crates/esplora/Cargo.toml b/crates/esplora/Cargo.toml index 85054f2e8..5a8d8f5ac 100644 --- a/crates/esplora/Cargo.toml +++ b/crates/esplora/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_esplora" -version = "0.20.1" +version = "0.21.0" edition = "2021" homepage = "https://bitcoindevkit.org" repository = "https://github.com/bitcoindevkit/bdk" @@ -15,13 +15,13 @@ readme = "README.md" workspace = true [dependencies] -bdk_core = { path = "../core", version = "0.4.1", default-features = false } -esplora-client = { version = "0.11.0", default-features = false } +bdk_core = { path = "../core", version = "0.5.0", default-features = false } +esplora-client = { version = "0.12.0", default-features = false } async-trait = { version = "0.1.66", optional = true } futures = { version = "0.3.26", optional = true } [dev-dependencies] -esplora-client = { version = "0.11.0" } +esplora-client = { version = "0.12.0" } bdk_chain = { path = "../chain" } bdk_testenv = { path = "../testenv" } tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros"] } diff --git a/crates/file_store/CHANGELOG.md b/crates/file_store/CHANGELOG.md index e4079988e..42bc3bf16 100644 --- a/crates/file_store/CHANGELOG.md +++ b/crates/file_store/CHANGELOG.md @@ -7,6 +7,12 @@ Contributors do not need to change this file but do need to add changelog detail 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). +## [file_store-0.20.0] + +### Changed + +- deps: bump `bdk_core` to 0.5.0 + ## [file_store-0.19.0] ### Added: @@ -35,3 +41,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [file_store-0.18.1]: https://github.com/bitcoindevkit/bdk/releases/tag/file_store-0.18.1 [file_store-0.19.0]: https://github.com/bitcoindevkit/bdk/releases/tag/file_store-0.19.0 +[file_store-0.20.0]: https://github.com/bitcoindevkit/bdk/releases/tag/file_store-0.20.0 diff --git a/crates/file_store/Cargo.toml b/crates/file_store/Cargo.toml index 287f34da2..061895ee0 100644 --- a/crates/file_store/Cargo.toml +++ b/crates/file_store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_file_store" -version = "0.19.0" +version = "0.20.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/bitcoindevkit/bdk" @@ -14,7 +14,7 @@ readme = "README.md" workspace = true [dependencies] -bdk_core = { path = "../core", version = "0.4.1", features = ["serde"]} +bdk_core = { path = "../core", version = "0.5.0", features = ["serde"]} bincode = { version = "1" } serde = { version = "1", features = ["derive"] } diff --git a/crates/testenv/CHANGELOG.md b/crates/testenv/CHANGELOG.md index 03d038f0c..b69d2e572 100644 --- a/crates/testenv/CHANGELOG.md +++ b/crates/testenv/CHANGELOG.md @@ -7,10 +7,15 @@ Contributors do not need to change this file but do need to add changelog detail 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). +## [testenv-0.12.0] + +- deps: bump `bdk_chain` to 0.22.0 + ## [testenv-0.11.1] ### Changed - Minor updates to fix new rustc 1.83.0 clippy warnings #1776 -[testenv-0.11.1]: https://github.com/bitcoindevkit/bdk/releases/tag/testenv-0.11.1 \ No newline at end of file +[testenv-0.11.1]: https://github.com/bitcoindevkit/bdk/releases/tag/testenv-0.11.1 +[testenv-0.12.0]: https://github.com/bitcoindevkit/bdk/releases/tag/testenv-0.12.0 diff --git a/crates/testenv/Cargo.toml b/crates/testenv/Cargo.toml index 48f4d242c..0332ca9f7 100644 --- a/crates/testenv/Cargo.toml +++ b/crates/testenv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk_testenv" -version = "0.11.1" +version = "0.12.0" edition = "2021" rust-version = "1.63" homepage = "https://bitcoindevkit.org" @@ -16,7 +16,7 @@ readme = "README.md" workspace = true [dependencies] -bdk_chain = { path = "../chain", version = "0.21.1", default-features = false } +bdk_chain = { path = "../chain", version = "0.22.0", default-features = false } electrsd = { version = "0.28.0", features = [ "legacy" ], default-features = false } [dev-dependencies]