From 8c153080e7afc05a4bf02367dfa4955e10adab78 Mon Sep 17 00:00:00 2001
From: Leonardo Lima
Date: Thu, 2 Oct 2025 14:42:28 +1000
Subject: [PATCH 1/4] chore(msrv): bump MSRV to `1.85.0`
- update all references to previous 1.63.0 MSRV.
- update the rust-version to 1.85.0.
- update the CI to not exclude bdk_electrum anymore.
- update the ci/pin-msrv.sh to 1.85.0.
---
.github/workflows/cont_integration.yml | 21 ++-------------------
CONTRIBUTING.md | 2 +-
README.md | 7 +++----
ci/pin-msrv.sh | 25 +------------------------
clippy.toml | 2 +-
crates/bitcoind_rpc/Cargo.toml | 2 +-
crates/chain/Cargo.toml | 2 +-
crates/core/Cargo.toml | 2 +-
crates/electrum/Cargo.toml | 1 +
crates/esplora/Cargo.toml | 1 +
crates/file_store/Cargo.toml | 1 +
crates/testenv/Cargo.toml | 2 +-
12 files changed, 15 insertions(+), 53 deletions(-)
diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml
index d6e5d9ef6..4786d5e0c 100644
--- a/.github/workflows/cont_integration.yml
+++ b/.github/workflows/cont_integration.yml
@@ -28,8 +28,7 @@ jobs:
rust:
- version: ${{ needs.prepare.outputs.rust_version }}
clippy: true
- - version: 1.63.0 # Overall MSRV
- - version: 1.75.0 # Specific MSRV for `bdk_electrum`
+ - version: 1.85.0 # Overall MSRV
features:
- --no-default-features --features miniscript/no-std,bdk_chain/hashbrown
- --all-features
@@ -46,31 +45,15 @@ jobs:
profile: minimal
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.8
- - name: Pin dependencies for 1.75
- if: matrix.rust.version == '1.75.0'
- run: |
- cargo update -p home --precise "0.5.9"
- cargo update -p native-tls --precise "0.2.13"
- cargo update -p idna_adapter --precise "1.1.0"
- cargo update -p base64ct --precise "1.6.0"
- cargo update -p minreq --precise "2.13.2"
- cargo update -p rayon --precise "1.10.0"
- cargo update -p rayon-core --precise "1.12.1"
- cargo update -p time --precise "0.3.41"
- name: Pin dependencies for MSRV
- if: matrix.rust.version == '1.63.0'
+ if: matrix.rust.version == '1.85.0'
run: ./ci/pin-msrv.sh
- name: Build + Test
env:
MATRIX_RUST_VERSION: ${{ matrix.rust.version }}
run: |
- if [ $MATRIX_RUST_VERSION = '1.63.0' ]; then
- cargo build --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
- cargo test --workspace --exclude 'example_*' --exclude 'bdk_electrum' ${{ matrix.features }}
- else
cargo build --workspace --exclude 'example_*' ${{ matrix.features }}
cargo test --workspace --exclude 'example_*' ${{ matrix.features }}
- fi
check-no-std:
needs: prepare
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b7778f781..a9a904653 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -46,7 +46,7 @@ Every new feature should be covered by functional tests where possible.
When refactoring, structure your PR to make it easy to review and don't
hesitate to split it into multiple small, focused PRs.
-The Minimum Supported Rust Version is **1.63.0** (enforced by our CI).
+The Minimum Supported Rust Version is **1.85.0** (enforced by our CI).
Commits should cover both the issue fixed and the solution's rationale.
These [guidelines](https://chris.beams.io/posts/git-commit/) should be kept in mind. Commit messages follow the ["Conventional Commits 1.0.0"](https://www.conventionalcommits.org/en/v1.0.0/) to make commit histories easier to read by humans and automated tools. All commits must be [GPG signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits).
diff --git a/README.md b/README.md
index 635489d8b..472222ad6 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
-
+
@@ -58,15 +58,14 @@ Fully working examples of how to use these components are in `/examples`:
## Minimum Supported Rust Version (MSRV)
-The following BDK crates maintains a MSRV of 1.63.0. To build these crates with the MSRV of 1.63.0 you will need to pin dependencies by running the [`pin-msrv.sh`](./ci/pin-msrv.sh) script.
+The following BDK crates maintains a MSRV of 1.85.0. To build these crates with the MSRV of 1.85.0 you will need to pin dependencies by running the [`pin-msrv.sh`](./ci/pin-msrv.sh) script.
- `bdk_core`
- `bdk_chain`
- `bdk_bitcoind_rpc`
- `bdk_esplora`
- `bdk_file_store`
-
-The MSRV of the `bdk_electrum` crate is 1.75.0.
+- `bdk_electrum`
## Just
diff --git a/ci/pin-msrv.sh b/ci/pin-msrv.sh
index 421a68372..0384cc452 100755
--- a/ci/pin-msrv.sh
+++ b/ci/pin-msrv.sh
@@ -8,27 +8,4 @@ set -euo pipefail
# To pin deps, switch toolchain to MSRV and execute the below updates
# cargo clean
-# rustup override set 1.63.0
-
-cargo update -p zstd-sys --precise "2.0.8+zstd.1.5.5"
-cargo update -p time --precise "0.3.20"
-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 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"
-cargo update -p native-tls --precise "0.2.13"
-cargo update -p flate2 --precise "1.0.35"
-cargo update -p bzip2-sys --precise "0.1.12"
-cargo update -p ring --precise "0.17.12"
-cargo update -p once_cell --precise "1.20.3"
-cargo update -p base64ct --precise "1.6.0"
-cargo update -p minreq --precise "2.13.2"
-cargo update -p tracing-core --precise "0.1.33"
-cargo update -p webpki-roots@1.0.3 --precise "1.0.1"
-cargo update -p rayon --precise "1.10.0"
-cargo update -p rayon-core --precise "1.12.1"
-cargo update -p socket2@0.6.0 --precise "0.5.10"
+# rustup override set 1.85.0
diff --git a/clippy.toml b/clippy.toml
index 69478ceab..730b7f372 100644
--- a/clippy.toml
+++ b/clippy.toml
@@ -1 +1 @@
-msrv="1.63.0"
+msrv="1.85.0"
diff --git a/crates/bitcoind_rpc/Cargo.toml b/crates/bitcoind_rpc/Cargo.toml
index 2b8e03d20..572d1f523 100644
--- a/crates/bitcoind_rpc/Cargo.toml
+++ b/crates/bitcoind_rpc/Cargo.toml
@@ -2,7 +2,7 @@
name = "bdk_bitcoind_rpc"
version = "0.22.0"
edition = "2021"
-rust-version = "1.63"
+rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_bitcoind_rpc"
diff --git a/crates/chain/Cargo.toml b/crates/chain/Cargo.toml
index dd7d2bb36..895045e26 100644
--- a/crates/chain/Cargo.toml
+++ b/crates/chain/Cargo.toml
@@ -2,7 +2,7 @@
name = "bdk_chain"
version = "0.23.2"
edition = "2021"
-rust-version = "1.63"
+rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_chain"
diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml
index 4fc71c50f..a56863d96 100644
--- a/crates/core/Cargo.toml
+++ b/crates/core/Cargo.toml
@@ -2,7 +2,7 @@
name = "bdk_core"
version = "0.6.2"
edition = "2021"
-rust-version = "1.63"
+rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_core"
diff --git a/crates/electrum/Cargo.toml b/crates/electrum/Cargo.toml
index 8fdd7823b..4a6dc4d5a 100644
--- a/crates/electrum/Cargo.toml
+++ b/crates/electrum/Cargo.toml
@@ -2,6 +2,7 @@
name = "bdk_electrum"
version = "0.23.2"
edition = "2021"
+rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_electrum"
diff --git a/crates/esplora/Cargo.toml b/crates/esplora/Cargo.toml
index e4c553f77..a052916a7 100644
--- a/crates/esplora/Cargo.toml
+++ b/crates/esplora/Cargo.toml
@@ -2,6 +2,7 @@
name = "bdk_esplora"
version = "0.22.1"
edition = "2021"
+rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_esplora"
diff --git a/crates/file_store/Cargo.toml b/crates/file_store/Cargo.toml
index 714c40e1b..8fbdc358d 100644
--- a/crates/file_store/Cargo.toml
+++ b/crates/file_store/Cargo.toml
@@ -2,6 +2,7 @@
name = "bdk_file_store"
version = "0.22.0"
edition = "2021"
+rust-version = "1.85.0"
license = "MIT OR Apache-2.0"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_file_store"
diff --git a/crates/testenv/Cargo.toml b/crates/testenv/Cargo.toml
index eff58a41c..2a707fe32 100644
--- a/crates/testenv/Cargo.toml
+++ b/crates/testenv/Cargo.toml
@@ -2,7 +2,7 @@
name = "bdk_testenv"
version = "0.13.1"
edition = "2021"
-rust-version = "1.63"
+rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk"
documentation = "https://docs.rs/bdk_testenv"
From 6b67a3409bfda1b9294d705f83cf69d3dcdbd19d Mon Sep 17 00:00:00 2001
From: Leonardo Lima
Date: Thu, 2 Oct 2025 14:49:44 +1000
Subject: [PATCH 2/4] fix(clippy): use `is_none_or` instead of `map_or`
- use `is_non_or` instead of `map_or`
- update lifetime on `find_direct_anchor`
---
crates/chain/src/canonical_view.rs | 4 ++--
crates/chain/src/indexer/keychain_txout.rs | 2 +-
crates/electrum/src/bdk_electrum_client.rs | 1 +
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/crates/chain/src/canonical_view.rs b/crates/chain/src/canonical_view.rs
index 09b18e50a..8567db10d 100644
--- a/crates/chain/src/canonical_view.rs
+++ b/crates/chain/src/canonical_view.rs
@@ -93,8 +93,8 @@ impl CanonicalView {
where
C: ChainOracle,
{
- fn find_direct_anchor<'g, A: Anchor, C: ChainOracle>(
- tx_node: &TxNode<'g, Arc, A>,
+ fn find_direct_anchor(
+ tx_node: &TxNode<'_, Arc, A>,
chain: &C,
chain_tip: BlockId,
) -> Result