Skip to content

Commit c72069e

Browse files
committed
Bump MSRV to 1.63
The version 1.63 satisfies our requirements for MSRV and provides significant benefits so this commit bumps it. This commit also starts using some advantages of the new MSRV, namely namespaced features, weak dependencies and the ability to use trait bounds in `const` context. This however does not yet migrade the `rand-std` feature because that requires a release of `secp256k1` with the same kind of change - bumping MSRV to 1.63 and removing `rand-std` in favor of weak dependency.
1 parent 1276a99 commit c72069e

40 files changed

+34
-100
lines changed

.github/workflows/rust.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
run: ./maintainer-tools/ci/run_task.sh nightly
7171

7272
MSRV: # 2 jobs, one per manifest.
73-
name: Test - 1.56.1 toolchain
73+
name: Test - MSRV toolchain
7474
runs-on: ubuntu-latest
7575
strategy:
7676
fail-fast: false
@@ -88,7 +88,7 @@ jobs:
8888
- name: "Select toolchain"
8989
uses: dtolnay/rust-toolchain@stable
9090
with:
91-
toolchain: "1.56.1"
91+
toolchain: "1.63.0"
9292
- name: "Set dependencies"
9393
run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock
9494
- name: "Run test script"

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<a href="https://github.com/rust-bitcoin/rust-bitcoin/blob/master/LICENSE"><img alt="CC0 1.0 Universal Licensed" src="https://img.shields.io/badge/license-CC0--1.0-blue.svg"/></a>
1313
<a href="https://github.com/rust-bitcoin/rust-bitcoin/actions?query=workflow%3AContinuous%20integration"><img alt="CI Status" src="https://github.com/rust-bitcoin/rust-bitcoin/workflows/Continuous%20integration/badge.svg"></a>
1414
<a href="https://docs.rs/bitcoin"><img alt="API Docs" src="https://img.shields.io/badge/docs.rs-bitcoin-green"/></a>
15-
<a href="https://blog.rust-lang.org/2021/11/01/Rust-1.56.1.html"><img alt="Rustc Version 1.56.1+" src="https://img.shields.io/badge/rustc-1.56.1%2B-lightgrey.svg"/></a>
15+
<a href="https://blog.rust-lang.org/2021/11/01/Rust-1.63.0.html"><img alt="Rustc Version 1.63.0+" src="https://img.shields.io/badge/rustc-1.63.0%2B-lightgrey.svg"/></a>
1616
<a href="https://gnusha.org/bitcoin-rust/"><img alt="Chat on IRC" src="https://img.shields.io/badge/irc-%23bitcoin--rust%20on%20libera.chat-blue"></a>
1717
<a href="https://github.com/model-checking/kani"><imp alt="kani" src="https://github.com/rust-bitcoin/rust-bitcoin/actions/workflows/kani.yaml/badge.svg"></a>
1818
</p>
@@ -69,7 +69,7 @@ For more information please see [`CONTRIBUTING.md`](./CONTRIBUTING.md).
6969

7070
## Minimum Supported Rust Version (MSRV)
7171

72-
This library should always compile with any combination of features on **Rust 1.56.1**.
72+
This library should always compile with any combination of features on **Rust 1.63.0**.
7373

7474
Use `Cargo-minimal.lock` to build the MSRV by copying to `Cargo.lock` and building.
7575

addresses/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies"]
99
keywords = ["bitcoin", "types"]
1010
readme = "README.md"
1111
edition = "2021"
12-
rust-version = "1.56.1"
12+
rust-version = "1.63.0"
1313
exclude = ["tests", "contrib"]
1414

1515
[features]

addresses/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ Types and logic required to receive bitcoin - i.e., bitcoin addresses.
44

55
## Minimum Supported Rust Version (MSRV)
66

7-
This library should always compile with any combination of features on **Rust 1.56.1**.
7+
This library should always compile with any combination of features on **Rust 1.63.0**.

base58/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies", "encoding"]
99
keywords = ["bitcoin", "base58", "encode", "decode", "checksum"]
1010
readme = "README.md"
1111
edition = "2021"
12-
rust-version = "1.56.1"
12+
rust-version = "1.63.0"
1313
exclude = ["tests", "contrib"]
1414

1515
[features]

base58/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ the checksum.
2222

2323
## Minimum Supported Rust Version (MSRV)
2424

25-
This library should always compile with any combination of features on **Rust 1.56.1**.
25+
This library should always compile with any combination of features on **Rust 1.63.0**.
2626

2727
## Licensing
2828

bitcoin/Cargo.toml

+4-7
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,18 @@ categories = ["cryptography::cryptocurrencies"]
1010
keywords = [ "crypto", "bitcoin" ]
1111
readme = "../README.md"
1212
edition = "2021"
13-
rust-version = "1.56.1"
13+
rust-version = "1.63.0"
1414
exclude = ["tests", "contrib"]
1515

1616
# If you change features or optional dependencies in any way please update the "# Cargo features" section in lib.rs as well.
1717
[features]
1818
default = [ "std", "secp-recovery" ]
19-
std = ["base58/std", "bech32/std", "hashes/std", "hex/std", "internals/std", "io/std", "primitives/std", "secp256k1/std", "units/std"]
19+
std = ["base58/std", "bech32/std", "hashes/std", "hex/std", "internals/std", "io/std", "primitives/std", "secp256k1/std", "units/std", "bitcoinconsensus?/std"]
2020
rand-std = ["secp256k1/rand-std", "std"]
2121
rand = ["secp256k1/rand"]
22-
serde = ["actual-serde", "hashes/serde", "internals/serde", "primitives/serde", "secp256k1/serde", "units/serde"]
22+
serde = ["dep:serde", "hashes/serde", "internals/serde", "primitives/serde", "secp256k1/serde", "units/serde"]
2323
secp-lowmemory = ["secp256k1/lowmemory"]
2424
secp-recovery = ["secp256k1/recovery"]
25-
bitcoinconsensus-std = ["bitcoinconsensus/std", "std"]
2625

2726
[dependencies]
2827
base58 = { package = "base58ck", version = "0.1.0", default-features = false, features = ["alloc"] }
@@ -37,11 +36,9 @@ units = { package = "bitcoin-units", version = "0.1.0", default-features = false
3736

3837
base64 = { version = "0.22.0", optional = true }
3938
ordered = { version = "0.2.0", optional = true }
40-
# Only use this feature for no-std builds, otherwise use bitcoinconsensus-std.
4139
bitcoinconsensus = { version = "0.106.0+26", default-features = false, optional = true }
4240

43-
# Do NOT use this as a feature! Use the `serde` feature instead.
44-
actual-serde = { package = "serde", version = "1.0.103", default-features = false, features = [ "derive", "alloc" ], optional = true }
41+
serde = { version = "1.0.103", default-features = false, features = [ "derive", "alloc" ], optional = true }
4542

4643
[dev-dependencies]
4744
internals = { package = "bitcoin-internals", version = "0.3.0", features = ["test-serde"] }

bitcoin/contrib/test_vars.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# shellcheck disable=SC2034
66

77
# Test all these features with "std" enabled.
8-
FEATURES_WITH_STD="rand-std serde secp-recovery bitcoinconsensus-std base64 ordered"
8+
FEATURES_WITH_STD="rand-std serde secp-recovery bitcoinconsensus base64 ordered"
99

1010
# Test all these features without "std" or "alloc" enabled.
1111
FEATURES_WITHOUT_STD="rand serde secp-recovery bitcoinconsensus base64 ordered"

bitcoin/src/blockdata/block.rs

-3
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ impl BlockHash {
4949
/// * [CBlockHeader definition](https://github.com/bitcoin/bitcoin/blob/345457b542b6a980ccfbc868af0970a6f91d1b82/src/primitives/block.h#L20)
5050
#[derive(Copy, PartialEq, Eq, Clone, PartialOrd, Ord, Hash)]
5151
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
52-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
5352
pub struct Header {
5453
/// Block version, now repurposed for soft fork signalling.
5554
pub version: Version,
@@ -142,7 +141,6 @@ impl fmt::Debug for Header {
142141
/// * [BIP34 - Block v2, Height in Coinbase](https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki)
143142
#[derive(Copy, PartialEq, Eq, Clone, Debug, PartialOrd, Ord, Hash)]
144143
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
145-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
146144
pub struct Version(i32);
147145

148146
impl Version {
@@ -223,7 +221,6 @@ impl Decodable for Version {
223221
/// * [CBlock definition](https://github.com/bitcoin/bitcoin/blob/345457b542b6a980ccfbc868af0970a6f91d1b82/src/primitives/block.h#L62)
224222
#[derive(PartialEq, Eq, Clone, Debug)]
225223
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
226-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
227224
pub struct Block {
228225
/// The block header
229226
pub header: Header,

bitcoin/src/blockdata/transaction.rs

-4
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ impl core::str::FromStr for OutPoint {
230230
/// * [CTxIn definition](https://github.com/bitcoin/bitcoin/blob/345457b542b6a980ccfbc868af0970a6f91d1b82/src/primitives/transaction.h#L65)
231231
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
232232
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
233-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
234233
pub struct TxIn {
235234
/// The reference to the previous output that is being used as an input.
236235
pub previous_output: OutPoint,
@@ -339,7 +338,6 @@ impl Default for TxIn {
339338
/// * [CTxOut definition](https://github.com/bitcoin/bitcoin/blob/345457b542b6a980ccfbc868af0970a6f91d1b82/src/primitives/transaction.h#L148)
340339
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
341340
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
342-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
343341
pub struct TxOut {
344342
/// The value of the output, in satoshis.
345343
pub value: Amount,
@@ -464,7 +462,6 @@ fn size_from_script_pubkey(script_pubkey: &Script) -> usize {
464462
/// transitioning from 0.29 to 0.30.
465463
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
466464
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
467-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
468465
pub struct Transaction {
469466
/// The protocol version, is currently expected to be 1 or 2 (BIP 68).
470467
pub version: Version,
@@ -924,7 +921,6 @@ impl std::error::Error for IndexOutOfBoundsError {
924921
/// [BIP-68]: https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki
925922
#[derive(Copy, PartialEq, Eq, Clone, Debug, PartialOrd, Ord, Hash)]
926923
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
927-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
928924
pub struct Version(pub i32);
929925

930926
impl Version {

bitcoin/src/consensus/serde.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -405,12 +405,11 @@ where
405405
/// To (de)serialize a field using consensus encoding you can write e.g.:
406406
///
407407
/// ```
408-
/// # use actual_serde::{Serialize, Deserialize};
408+
/// # use serde::{Serialize, Deserialize};
409409
/// use bitcoin::Transaction;
410410
/// use bitcoin::consensus;
411411
///
412412
/// #[derive(Serialize, Deserialize)]
413-
/// # #[serde(crate = "actual_serde")]
414413
/// pub struct MyStruct {
415414
/// #[serde(with = "consensus::serde::With::<consensus::serde::Hex>")]
416415
/// tx: Transaction,

bitcoin/src/consensus_validation.rs

+1-6
Original file line numberDiff line numberDiff line change
@@ -200,16 +200,11 @@ impl fmt::Display for BitcoinconsensusError {
200200
}
201201
}
202202

203-
#[cfg(all(feature = "std", feature = "bitcoinconsensus-std"))]
203+
#[cfg(all(feature = "std", feature = "bitcoinconsensus"))]
204204
impl std::error::Error for BitcoinconsensusError {
205205
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { Some(&self.0) }
206206
}
207207

208-
#[cfg(all(feature = "std", not(feature = "bitcoinconsensus-std")))]
209-
impl std::error::Error for BitcoinconsensusError {
210-
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { None }
211-
}
212-
213208
/// An error during transaction validation.
214209
#[derive(Debug, Clone, PartialEq, Eq)]
215210
#[non_exhaustive]

bitcoin/src/crypto/ecdsa.rs

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ const MAX_SIG_LEN: usize = 73;
2020
/// An ECDSA signature with the corresponding hash type.
2121
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
2222
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
23-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
2423
pub struct Signature {
2524
/// The underlying ECDSA Signature.
2625
pub signature: secp256k1::ecdsa::Signature,

bitcoin/src/crypto/key.rs

-2
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,6 @@ pub type UntweakedPublicKey = XOnlyPublicKey;
694694
/// Tweaked BIP-340 X-coord-only public key.
695695
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
696696
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
697-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
698697
#[cfg_attr(feature = "serde", serde(transparent))]
699698
pub struct TweakedPublicKey(XOnlyPublicKey);
700699

@@ -727,7 +726,6 @@ pub type UntweakedKeypair = Keypair;
727726
/// ```
728727
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
729728
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
730-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
731729
#[cfg_attr(feature = "serde", serde(transparent))]
732730
pub struct TweakedKeypair(Keypair);
733731

bitcoin/src/crypto/sighash.rs

+2-11
Original file line numberDiff line numberDiff line change
@@ -1788,9 +1788,9 @@ mod tests {
17881788

17891789
fn sighash_deser_numeric<'de, D>(deserializer: D) -> Result<TapSighashType, D::Error>
17901790
where
1791-
D: actual_serde::Deserializer<'de>,
1791+
D: serde::Deserializer<'de>,
17921792
{
1793-
use actual_serde::de::{Deserialize, Error, Unexpected};
1793+
use serde::de::{Deserialize, Error, Unexpected};
17941794

17951795
let raw = u8::deserialize(deserializer)?;
17961796
TapSighashType::from_consensus_u8(raw).map_err(|_| {
@@ -1807,7 +1807,6 @@ mod tests {
18071807
use crate::taproot::{TapNodeHash, TapTweakHash};
18081808

18091809
#[derive(serde::Deserialize)]
1810-
#[serde(crate = "actual_serde")]
18111810
struct UtxoSpent {
18121811
#[serde(rename = "scriptPubKey")]
18131812
script_pubkey: ScriptBuf,
@@ -1817,7 +1816,6 @@ mod tests {
18171816

18181817
#[derive(serde::Deserialize)]
18191818
#[serde(rename_all = "camelCase")]
1820-
#[serde(crate = "actual_serde")]
18211819
struct KpsGiven {
18221820
#[serde(with = "con_serde::With::<con_serde::Hex>")]
18231821
raw_unsigned_tx: Transaction,
@@ -1826,7 +1824,6 @@ mod tests {
18261824

18271825
#[derive(serde::Deserialize)]
18281826
#[serde(rename_all = "camelCase")]
1829-
#[serde(crate = "actual_serde")]
18301827
struct KpsIntermediary {
18311828
hash_prevouts: sha256::Hash,
18321829
hash_outputs: sha256::Hash,
@@ -1837,7 +1834,6 @@ mod tests {
18371834

18381835
#[derive(serde::Deserialize)]
18391836
#[serde(rename_all = "camelCase")]
1840-
#[serde(crate = "actual_serde")]
18411837
struct KpsInputSpendingGiven {
18421838
txin_index: usize,
18431839
internal_privkey: SecretKey,
@@ -1848,7 +1844,6 @@ mod tests {
18481844

18491845
#[derive(serde::Deserialize)]
18501846
#[serde(rename_all = "camelCase")]
1851-
#[serde(crate = "actual_serde")]
18521847
struct KpsInputSpendingIntermediary {
18531848
internal_pubkey: XOnlyPublicKey,
18541849
tweak: TapTweakHash,
@@ -1860,14 +1855,12 @@ mod tests {
18601855

18611856
#[derive(serde::Deserialize)]
18621857
#[serde(rename_all = "camelCase")]
1863-
#[serde(crate = "actual_serde")]
18641858
struct KpsInputSpendingExpected {
18651859
witness: Vec<String>,
18661860
}
18671861

18681862
#[derive(serde::Deserialize)]
18691863
#[serde(rename_all = "camelCase")]
1870-
#[serde(crate = "actual_serde")]
18711864
struct KpsInputSpending {
18721865
given: KpsInputSpendingGiven,
18731866
intermediary: KpsInputSpendingIntermediary,
@@ -1877,7 +1870,6 @@ mod tests {
18771870

18781871
#[derive(serde::Deserialize)]
18791872
#[serde(rename_all = "camelCase")]
1880-
#[serde(crate = "actual_serde")]
18811873
struct KeyPathSpending {
18821874
given: KpsGiven,
18831875
intermediary: KpsIntermediary,
@@ -1886,7 +1878,6 @@ mod tests {
18861878

18871879
#[derive(serde::Deserialize)]
18881880
#[serde(rename_all = "camelCase")]
1889-
#[serde(crate = "actual_serde")]
18901881
struct TestData {
18911882
version: u64,
18921883
key_path_spending: Vec<KeyPathSpending>,

bitcoin/src/crypto/taproot.rs

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use crate::taproot::serialized_signature::{self, SerializedSignature};
1616
/// A BIP340-341 serialized Taproot signature with the corresponding hash type.
1717
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1818
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
19-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
2019
pub struct Signature {
2120
/// The underlying schnorr signature.
2221
pub signature: secp256k1::schnorr::Signature,

bitcoin/src/lib.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@
1515
//!
1616
//! * `base64` (dependency) - enables encoding of PSBTs and message signatures.
1717
//! * `bitcoinconsensus` (dependency) - enables validating scripts and transactions.
18-
//! * `bitcoinconsensus-std` - same as `bitcoinconsensus` but also enables `std` here and in the
19-
//! `bitcoinconsensus` crate. Additionally, enables returning
20-
//! `bitcoinconsensus::Error` from `std::error::Error::source()`.
2118
//! * `default` - enables `std` and `secp-recovery`.
2219
//! * `ordered` (dependency) - adds implementations of `ArbitraryOrd` to some structs.
2320
//! * `rand` (transitive dependency) - makes it more convenient to generate random values.
@@ -79,7 +76,7 @@ pub extern crate secp256k1;
7976

8077
#[cfg(feature = "serde")]
8178
#[macro_use]
82-
extern crate actual_serde as serde;
79+
extern crate serde;
8380

8481
mod internal_macros;
8582
#[cfg(feature = "serde")]

bitcoin/src/network/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ impl From<Network> for NetworkKind {
6565
/// The cryptocurrency network to act on.
6666
#[derive(Copy, PartialEq, Eq, PartialOrd, Ord, Clone, Hash, Debug)]
6767
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
68-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
6968
#[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
7069
#[non_exhaustive]
7170
pub enum Network {
@@ -425,7 +424,6 @@ mod tests {
425424
#[test]
426425
fn serde_as_core_arg() {
427426
#[derive(Serialize, Deserialize, PartialEq, Debug)]
428-
#[serde(crate = "actual_serde")]
429427
struct T {
430428
#[serde(with = "crate::network::as_core_arg")]
431429
pub network: Network,

bitcoin/src/pow.rs

-3
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ macro_rules! do_impl {
8888
/// Work is a measure of how difficult it is to find a hash below a given [`Target`].
8989
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
9090
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
91-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
9291
pub struct Work(U256);
9392

9493
impl Work {
@@ -124,7 +123,6 @@ impl Sub for Work {
124123
/// ref: <https://en.bitcoin.it/wiki/Target>
125124
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
126125
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
127-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
128126
pub struct Target(U256);
129127

130128
impl Target {
@@ -347,7 +345,6 @@ do_impl!(Target);
347345
/// terms of the underlying `u32`.
348346
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
349347
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
350-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
351348
pub struct CompactTarget(u32);
352349

353350
impl CompactTarget {

bitcoin/src/psbt/map/input.rs

-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ const PSBT_IN_PROPRIETARY: u8 = 0xFC;
6767
/// transaction.
6868
#[derive(Clone, Default, Debug, PartialEq, Eq, Hash)]
6969
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
70-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
7170
pub struct Input {
7271
/// The non-witness transaction this input spends from. Should only be
7372
/// `Option::Some` for inputs which spend non-segwit outputs or
@@ -148,7 +147,6 @@ pub struct Input {
148147
/// ```
149148
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
150149
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
151-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
152150
pub struct PsbtSighashType {
153151
pub(in crate::psbt) inner: u32,
154152
}

bitcoin/src/psbt/map/output.rs

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ const PSBT_OUT_PROPRIETARY: u8 = 0xFC;
2828
/// transaction.
2929
#[derive(Clone, Default, Debug, PartialEq, Eq, Hash)]
3030
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
31-
#[cfg_attr(feature = "serde", serde(crate = "actual_serde"))]
3231
pub struct Output {
3332
/// The redeem script for this output.
3433
pub redeem_script: Option<ScriptBuf>,

0 commit comments

Comments
 (0)