Remove now-useless overrides of `decoder`
What changed, and why it matters
This commit is a routine cleanup: it removes dozens of identical-looking helper functions that were made unnecessary by a previous change. There is no security issue here. The code still decodes data the same way; it just relies on a shared default implementation instead of repeating the same boilerplate in every file.
No action required. This is a non-functional refactor. Continue normal review and testing.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch deletes manual fn decoder() -> Self::Decoder overrides from Decode trait implementations across 30 files. The preceding commit added a default implementation of decoder() in the Decode trait, so these overrides became redundant. The removed functions only constructed decoder objects (e.g., ArrayDecoder, VecDecoder, Decoder2, etc.) and delegated to the same default logic. No decoding behavior, wire format, or validation logic was changed.
Changed components
consensus_encodingiop2pprimitivesunitsInspect captured patch +0 / −285
diff --git a/consensus_encoding/src/decode/decoders.rs b/consensus_encoding/src/decode/decoders.rs
index c95d676d..372e69cb 100644
--- a/consensus_encoding/src/decode/decoders.rs
+++ b/consensus_encoding/src/decode/decoders.rs
@@ -927,7 +927,6 @@ mod tests {
#[cfg(feature = "alloc")]
impl Decode for Inner {
type Decoder = InnerDecoder;
- fn decoder() -> Self::Decoder { InnerDecoder(ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "alloc")]
@@ -959,7 +958,6 @@ mod tests {
#[cfg(feature = "alloc")]
impl Decode for Test {
type Decoder = TestDecoder;
- fn decoder() -> Self::Decoder { TestDecoder(VecDecoder::new()) }
}
#[test]
diff --git a/consensus_encoding/src/decode/mod.rs b/consensus_encoding/src/decode/mod.rs
index 8c2adfa6..0d1ffeb7 100644
--- a/consensus_encoding/src/decode/mod.rs
+++ b/consensus_encoding/src/decode/mod.rs
@@ -36,7 +36,6 @@ use crate::{DecodeError, UnconsumedError};
///
/// impl Decode for Foo {
/// type Decoder = FooDecoder;
-/// fn decoder() -> Self::Decoder { FooDecoder(ArrayDecoder::new()) }
/// }
///
/// let foo: Foo = decode_from_slice(&[0xde, 0xad, 0xbe, 0xef]).unwrap();
diff --git a/consensus_encoding/tests/api.rs b/consensus_encoding/tests/api.rs
index b68d7cc2..ee0e2a38 100644
--- a/consensus_encoding/tests/api.rs
+++ b/consensus_encoding/tests/api.rs
@@ -91,7 +91,6 @@ impl Decoder for FooDecoder {
impl Decode for Foo {
type Decoder = FooDecoder;
- fn decoder() -> Self::Decoder { FooDecoder(ArrayDecoder::new()) }
}
/// A struct that includes all types that implement `Clone`.
diff --git a/consensus_encoding/tests/compact_size.rs b/consensus_encoding/tests/compact_size.rs
index 5976de3a..26a4acc1 100644
--- a/consensus_encoding/tests/compact_size.rs
+++ b/consensus_encoding/tests/compact_size.rs
@@ -44,7 +44,6 @@ impl Decoder for CompactSizeUsizeDecoderWrapper {
#[cfg(feature = "alloc")]
impl Decode for CompactSizeUsize {
type Decoder = CompactSizeUsizeDecoderWrapper;
- fn decoder() -> Self::Decoder { CompactSizeUsizeDecoderWrapper(CompactSizeDecoder::new()) }
}
/// A `u64` value encoded and decoded as a compact size integer.
@@ -82,7 +81,6 @@ impl Decoder for CompactSizeU64DecoderWrapper {
#[cfg(feature = "alloc")]
impl Decode for CompactSizeU64 {
type Decoder = CompactSizeU64DecoderWrapper;
- fn decoder() -> Self::Decoder { CompactSizeU64DecoderWrapper(CompactSizeU64Decoder::new()) }
}
#[test]
diff --git a/consensus_encoding/tests/composition.rs b/consensus_encoding/tests/composition.rs
index 60ddf059..2ed79aa0 100644
--- a/consensus_encoding/tests/composition.rs
+++ b/consensus_encoding/tests/composition.rs
@@ -79,8 +79,6 @@ impl Decoder for CompositeDataDecoder {
impl Decode for CompositeData {
type Decoder = CompositeDataDecoder;
-
- fn decoder() -> Self::Decoder { CompositeDataDecoder::new() }
}
#[test]
diff --git a/consensus_encoding/tests/decode.rs b/consensus_encoding/tests/decode.rs
index 06e67179..2bc27c38 100644
--- a/consensus_encoding/tests/decode.rs
+++ b/consensus_encoding/tests/decode.rs
@@ -233,7 +233,6 @@ struct TestArray([u8; 4]);
impl Decode for TestArray {
type Decoder = TestArrayDecoder;
- fn decoder() -> Self::Decoder { TestArrayDecoder { inner: ArrayDecoder::new() } }
}
#[derive(Default)]
@@ -417,7 +416,6 @@ impl Decoder for InnerDecoder {
#[cfg(feature = "alloc")]
impl Decode for Inner {
type Decoder = InnerDecoder;
- fn decoder() -> Self::Decoder { InnerDecoder(ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "alloc")]
@@ -448,7 +446,6 @@ impl Decoder for TestDecoder {
#[cfg(feature = "alloc")]
impl Decode for Test {
type Decoder = TestDecoder;
- fn decoder() -> Self::Decoder { TestDecoder(VecDecoder::new()) }
}
// Stress test the push_bytes impl by passing in a single byte slice repeatedly.
diff --git a/io/src/lib.rs b/io/src/lib.rs
index db7474a4..cc9bfeb2 100644
--- a/io/src/lib.rs
+++ b/io/src/lib.rs
@@ -806,7 +806,6 @@ mod tests {
impl Decode for TestArray {
type Decoder = TestArrayDecoder;
- fn decoder() -> Self::Decoder { TestArrayDecoder { inner: ArrayDecoder::new() } }
}
#[derive(Default)]
diff --git a/p2p/src/address.rs b/p2p/src/address.rs
index e4e0015a..9bd2a5ad 100644
--- a/p2p/src/address.rs
+++ b/p2p/src/address.rs
@@ -184,13 +184,6 @@ impl encoding::Decoder for AddressDecoder {
impl encoding::Decode for Address {
type Decoder = AddressDecoder;
- fn decoder() -> Self::Decoder {
- AddressDecoder(encoding::Decoder3::new(
- ServiceFlags::decoder(),
- encoding::ArrayDecoder::<16>::new(),
- encoding::ArrayDecoder::<2>::new(),
- ))
- }
}
/// Data type received in an `addr` message.
@@ -247,13 +240,6 @@ impl encoding::Decoder for AddrV1MessageDecoder {
impl encoding::Decode for AddrV1Message {
type Decoder = AddrV1MessageDecoder;
-
- fn decoder() -> Self::Decoder {
- AddrV1MessageDecoder(AddrV1MessageInnerDecoder::new(
- ArrayDecoder::new(),
- Address::decoder(),
- ))
- }
}
/// Supported networks for use in BIP-0155 addrv2 message
@@ -589,10 +575,6 @@ impl encoding::Decoder for AddrV2Decoder {
impl encoding::Decode for AddrV2 {
type Decoder = AddrV2Decoder;
-
- fn decoder() -> Self::Decoder {
- AddrV2Decoder(Decoder2::new(ArrayDecoder::new(), ByteVecDecoder::new()))
- }
}
/// Address received from BIP-0155 addrv2 message
@@ -686,15 +668,6 @@ impl encoding::Decoder for AddrV2MessageDecoder {
impl encoding::Decode for AddrV2Message {
type Decoder = AddrV2MessageDecoder;
-
- fn decoder() -> Self::Decoder {
- AddrV2MessageDecoder(AddrV2MessageInnerDecoder::new(
- ArrayDecoder::new(),
- CompactSizeU64Decoder::new(),
- AddrV2::decoder(),
- ArrayDecoder::new(),
- ))
- }
}
/// Error types for address messages.
diff --git a/p2p/src/bip152.rs b/p2p/src/bip152.rs
index 0dd18675..7bfef4e0 100644
--- a/p2p/src/bip152.rs
+++ b/p2p/src/bip152.rs
@@ -109,13 +109,6 @@ impl encoding::Decoder for PrefilledTransactionDecoder {
impl encoding::Decode for PrefilledTransaction {
type Decoder = PrefilledTransactionDecoder;
-
- fn decoder() -> Self::Decoder {
- PrefilledTransactionDecoder(Decoder2::new(
- CompactSizeDecoder::new(),
- TransactionDecoder::new(),
- ))
- }
}
/// Trait that abstracts over a transaction identifier i.e., `Txid` and `Wtxid`.
@@ -236,8 +229,6 @@ impl encoding::Decoder for ShortIdDecoder {
impl encoding::Decode for ShortId {
type Decoder = ShortIdDecoder;
-
- fn decoder() -> Self::Decoder { ShortIdDecoder(ShortIdInnerDecoder::new()) }
}
/// A structure to relay a block header, short IDs, and a select few transactions.
@@ -340,15 +331,6 @@ impl encoding::Decoder for HeaderAndShortIdsDecoder {
impl encoding::Decode for HeaderAndShortIds {
type Decoder = HeaderAndShortIdsDecoder;
-
- fn decoder() -> Self::Decoder {
- HeaderAndShortIdsDecoder(Decoder4::new(
- Header::decoder(),
- ArrayDecoder::new(),
- VecDecoder::<ShortId>::new(),
- VecDecoder::<PrefilledTransaction>::new(),
- ))
- }
}
impl HeaderAndShortIds {
@@ -466,8 +448,6 @@ impl encoding::Decoder for OffsetDecoder {
impl encoding::Decode for Offset {
type Decoder = OffsetDecoder;
-
- fn decoder() -> Self::Decoder { OffsetDecoder(CompactSizeDecoder::new()) }
}
/// A [`BlockTransactionsRequest`] structure is used to list transaction indexes
@@ -582,10 +562,6 @@ impl encoding::Decoder for BlockTransactionsRequestDecoder {
impl encoding::Decode for BlockTransactionsRequest {
type Decoder = BlockTransactionsRequestDecoder;
-
- fn decoder() -> Self::Decoder {
- BlockTransactionsRequestDecoder(Decoder2::new(BlockHashDecoder::new(), VecDecoder::new()))
- }
}
/// A [`BlockTransactions`] structure is used to provide some of the transactions
@@ -653,13 +629,6 @@ impl encoding::Decoder for BlockTransactionsDecoder {
impl encoding::Decode for BlockTransactions {
type Decoder = BlockTransactionsDecoder;
-
- fn decoder() -> Self::Decoder {
- BlockTransactionsDecoder(Decoder2::new(
- BlockHashDecoder::new(),
- VecDecoder::<Transaction>::new(),
- ))
- }
}
impl BlockTransactions {
diff --git a/p2p/src/lib.rs b/p2p/src/lib.rs
index 1d0e9870..c2c75302 100644
--- a/p2p/src/lib.rs
+++ b/p2p/src/lib.rs
@@ -161,7 +161,6 @@ impl encoding::Decoder for ProtocolVersionDecoder {
impl encoding::Decode for ProtocolVersion {
type Decoder = ProtocolVersionDecoder;
- fn decoder() -> Self::Decoder { ProtocolVersionDecoder(encoding::ArrayDecoder::<4>::new()) }
}
/// Flags to indicate which network services a node supports.
@@ -356,7 +355,6 @@ impl encoding::Decoder for ServiceFlagsDecoder {
impl encoding::Decode for ServiceFlags {
type Decoder = ServiceFlagsDecoder;
- fn decoder() -> Self::Decoder { ServiceFlagsDecoder(encoding::ArrayDecoder::<8>::new()) }
}
/// Network magic bytes to identify the cryptocurrency network the message was intended for.
@@ -490,8 +488,6 @@ impl encoding::Decoder for MagicDecoder {
impl encoding::Decode for Magic {
type Decoder = MagicDecoder;
-
- fn decoder() -> Self::Decoder { MagicDecoder(ArrayDecoder::new()) }
}
impl AsRef<[u8]> for Magic {
diff --git a/p2p/src/merkle_tree.rs b/p2p/src/merkle_tree.rs
index 38717dd6..a57bf02c 100644
--- a/p2p/src/merkle_tree.rs
+++ b/p2p/src/merkle_tree.rs
@@ -168,9 +168,6 @@ impl encoding::Decoder for MerkleBlockDecoder {
impl encoding::Decode for MerkleBlock {
type Decoder = MerkleBlockDecoder;
- fn decoder() -> Self::Decoder {
- MerkleBlockDecoder(Decoder2::new(block::Header::decoder(), PartialMerkleTree::decoder()))
- }
}
/// Data structure that represents a partial Merkle tree.
@@ -547,14 +544,6 @@ impl encoding::Decoder for PartialMerkleTreeDecoder {
impl encoding::Decode for PartialMerkleTree {
type Decoder = PartialMerkleTreeDecoder;
-
- fn decoder() -> Self::Decoder {
- PartialMerkleTreeDecoder(Decoder3::new(
- ArrayDecoder::new(),
- VecDecoder::new(),
- ByteVecDecoder::new(),
- ))
- }
}
/// Error types for merkle tree messages.
diff --git a/p2p/src/message.rs b/p2p/src/message.rs
index 1e1efbbd..0ad20f63 100644
--- a/p2p/src/message.rs
+++ b/p2p/src/message.rs
@@ -129,8 +129,6 @@ impl encoding::Encode for CommandString {
impl encoding::Decode for CommandString {
type Decoder = CommandStringDecoder;
-
- fn decoder() -> Self::Decoder { CommandStringDecoder { inner: encoding::ArrayDecoder::new() } }
}
/// Encoder for the [`CommandString`] type
@@ -301,14 +299,6 @@ impl encoding::Decoder for V1MessageHeaderDecoder {
impl encoding::Decode for V1MessageHeader {
type Decoder = V1MessageHeaderDecoder;
- fn decoder() -> Self::Decoder {
- V1MessageHeaderDecoder(encoding::Decoder4::new(
- encoding::ArrayDecoder::<4>::new(),
- CommandString::decoder(),
- encoding::ArrayDecoder::<4>::new(),
- encoding::ArrayDecoder::<4>::new(),
- ))
- }
}
/// A Network message using the v2 p2p protocol defined in BIP-0324.
@@ -367,9 +357,6 @@ impl encoding::Decoder for InventoryPayloadDecoder {
impl encoding::Decode for InventoryPayload {
type Decoder = InventoryPayloadDecoder;
- fn decoder() -> Self::Decoder {
- InventoryPayloadDecoder(VecDecoder::<message_blockdata::Inventory>::new())
- }
}
/// A list of legacy p2p address messages.
@@ -419,7 +406,6 @@ impl encoding::Decoder for AddrPayloadDecoder {
impl encoding::Decode for AddrPayload {
type Decoder = AddrPayloadDecoder;
- fn decoder() -> Self::Decoder { AddrPayloadDecoder(VecDecoder::new()) }
}
/// A list of v2 address messages.
@@ -472,7 +458,6 @@ impl encoding::Decoder for AddrV2PayloadDecoder {
impl encoding::Decode for AddrV2Payload {
type Decoder = AddrV2PayloadDecoder;
- fn decoder() -> Self::Decoder { AddrV2PayloadDecoder(VecDecoder::new()) }
}
/// The `feefilter` message, wrapper around [`FeeRate`] for P2P wire format encoding.
@@ -553,8 +538,6 @@ impl encoding::Decoder for FeeFilterDecoder {
impl encoding::Decode for FeeFilter {
type Decoder = FeeFilterDecoder;
-
- fn decoder() -> Self::Decoder { FeeFilterDecoder::new() }
}
#[cfg(feature = "arbitrary")]
@@ -621,7 +604,6 @@ impl encoding::Decoder for PingDecoder {
impl encoding::Decode for Ping {
type Decoder = PingDecoder;
- fn decoder() -> Self::Decoder { PingDecoder(encoding::ArrayDecoder::<8>::new()) }
}
/// Serializer for Pong
@@ -678,7 +660,6 @@ impl encoding::Decoder for PongDecoder {
impl encoding::Decode for Pong {
type Decoder = PongDecoder;
- fn decoder() -> Self::Decoder { PongDecoder(encoding::ArrayDecoder::<8>::new()) }
}
/// A Network message payload. Proper documentation is available at
@@ -1464,19 +1445,6 @@ impl encoding::Decoder for V1NetworkMessageDecoder {
impl encoding::Decode for V1NetworkMessage {
type Decoder = V1NetworkMessageDecoder;
-
- fn decoder() -> Self::Decoder {
- V1NetworkMessageDecoder {
- state: DecoderState::ReadingHeader {
- header_decoder: encoding::Decoder4::new(
- encoding::ArrayDecoder::new(),
- CommandStringDecoder { inner: encoding::ArrayDecoder::new() },
- encoding::ArrayDecoder::new(),
- encoding::ArrayDecoder::new(),
- ),
- },
- }
- }
}
/// Encoder for [`V2NetworkMessage`].
@@ -1631,10 +1599,6 @@ impl encoding::Decoder for NetworkHeaderDecoder {
impl encoding::Decode for NetworkHeader {
type Decoder = NetworkHeaderDecoder;
-
- fn decoder() -> Self::Decoder {
- NetworkHeaderDecoder(Decoder2::new(block::Header::decoder(), ArrayDecoder::new()))
- }
}
/// A list of bitcoin block headers.
@@ -1700,8 +1664,6 @@ impl encoding::Decoder for HeadersMessageDecoder {
impl encoding::Decode for HeadersMessage {
type Decoder = HeadersMessageDecoder;
-
- fn decoder() -> Self::Decoder { HeadersMessageDecoder(VecDecoder::new()) }
}
// State machine for decoding a [`V2NetworkMessage`].
@@ -1911,12 +1873,6 @@ impl encoding::Decoder for V2NetworkMessageDecoder {
impl encoding::Decode for V2NetworkMessage {
type Decoder = V2NetworkMessageDecoder;
-
- fn decoder() -> Self::Decoder {
- V2NetworkMessageDecoder {
- state: V2NetworkMessageDecoderState::ShortId(encoding::ArrayDecoder::new()),
- }
- }
}
/// Does a double-SHA256 on `data` and returns the first 4 bytes.
diff --git a/p2p/src/message_blockdata.rs b/p2p/src/message_blockdata.rs
index 29706d73..33ef1f7d 100644
--- a/p2p/src/message_blockdata.rs
+++ b/p2p/src/message_blockdata.rs
@@ -135,9 +135,6 @@ impl encoding::Decoder for InventoryDecoder {
impl encoding::Decode for Inventory {
type Decoder = InventoryDecoder;
- fn decoder() -> Self::Decoder {
- InventoryDecoder(Decoder2::new(ArrayDecoder::<4>::new(), ArrayDecoder::<32>::new()))
- }
}
/// A block locator.
@@ -246,7 +243,6 @@ impl encoding::Decoder for BlockLocatorDecoder {
impl encoding::Decode for BlockLocator {
type Decoder = BlockLocatorDecoder;
- fn decoder() -> Self::Decoder { BlockLocatorDecoder::new() }
}
// Some simple messages
@@ -371,24 +367,10 @@ impl encoding::Decoder for GetBlocksMessageDecoder {
impl encoding::Decode for GetBlocksMessage {
type Decoder = GetBlocksMessageDecoder;
- fn decoder() -> Self::Decoder {
- GetBlocksMessageDecoder(Decoder3::new(
- ProtocolVersionDecoder::new(),
- BlockLocatorDecoder::new(),
- BlockHashDecoder::new(),
- ))
- }
}
impl encoding::Decode for GetHeadersMessage {
type Decoder = GetHeadersMessageDecoder;
- fn decoder() -> Self::Decoder {
- GetHeadersMessageDecoder(Decoder3::new(
- ProtocolVersionDecoder::new(),
- BlockLocatorDecoder::new(),
- BlockHashDecoder::new(),
- ))
- }
}
/// Error types for blockdata messages.
diff --git a/p2p/src/message_bloom.rs b/p2p/src/message_bloom.rs
index a2da0f9f..a7998354 100644
--- a/p2p/src/message_bloom.rs
+++ b/p2p/src/message_bloom.rs
@@ -96,15 +96,6 @@ impl encoding::Decoder for FilterLoadDecoder {
impl encoding::Decode for FilterLoad {
type Decoder = FilterLoadDecoder;
-
- fn decoder() -> Self::Decoder {
- FilterLoadDecoder(Decoder4::new(
- ByteVecDecoder::new(),
- ArrayDecoder::new(),
- ArrayDecoder::new(),
- BloomFlags::decoder(),
- ))
- }
}
/// Bloom filter update flags
@@ -177,8 +168,6 @@ impl encoding::Decoder for BloomFlagsDecoder {
impl encoding::Decode for BloomFlags {
type Decoder = BloomFlagsDecoder;
-
- fn decoder() -> Self::Decoder { BloomFlagsDecoder(ArrayDecoder::new()) }
}
/// `filteradd` message updates the current filter with new data
@@ -232,8 +221,6 @@ impl encoding::Decoder for FilterAddDecoder {
impl encoding::Decode for FilterAdd {
type Decoder = FilterAddDecoder;
-
- fn decoder() -> Self::Decoder { FilterAddDecoder(FilterAddInnerDecoder::new()) }
}
/// Error types for bloom filter messages.
diff --git a/p2p/src/message_compact_blocks.rs b/p2p/src/message_compact_blocks.rs
index 6a4b0b2b..a6136087 100644
--- a/p2p/src/message_compact_blocks.rs
+++ b/p2p/src/message_compact_blocks.rs
@@ -65,10 +65,6 @@ impl encoding::Decoder for SendCmpctDecoder {
impl encoding::Decode for SendCmpct {
type Decoder = SendCmpctDecoder;
-
- fn decoder() -> Self::Decoder {
- SendCmpctDecoder(Decoder2::new(ArrayDecoder::new(), ArrayDecoder::new()))
- }
}
/// Error types for [`SendCmpct`] messages.
diff --git a/p2p/src/message_filter.rs b/p2p/src/message_filter.rs
index 1d0f7819..94c5f3f1 100644
--- a/p2p/src/message_filter.rs
+++ b/p2p/src/message_filter.rs
@@ -102,8 +102,6 @@ impl encoding::Decoder for FilterHashDecoder {
impl encoding::Decode for FilterHash {
type Decoder = FilterHashDecoder;
-
- fn decoder() -> Self::Decoder { FilterHashDecoder(ArrayDecoder::new()) }
}
/// Decoder for the [`FilterHeader`] type.
@@ -131,8 +129,6 @@ impl encoding::Decoder for FilterHeaderDecoder {
impl encoding::Decode for FilterHeader {
type Decoder = FilterHeaderDecoder;
-
- fn decoder() -> Self::Decoder { FilterHeaderDecoder(ArrayDecoder::new()) }
}
#[cfg(feature = "arbitrary")]
@@ -205,14 +201,6 @@ impl encoding::Decoder for GetCFiltersDecoder {
impl encoding::Decode for GetCFilters {
type Decoder = GetCFiltersDecoder;
-
- fn decoder() -> Self::Decoder {
- GetCFiltersDecoder(Decoder3::new(
- ArrayDecoder::new(),
- BlockHeightDecoder::new(),
- BlockHashDecoder::new(),
- ))
- }
}
/// cfilter message
@@ -283,14 +271,6 @@ impl encoding::Decoder for CFilterDecoder {
impl encoding::Decode for CFilter {
type Decoder = CFilterDecoder;
-
- fn decoder() -> Self::Decoder {
- CFilterDecoder(Decoder3::new(
- ArrayDecoder::new(),
- BlockHashDecoder::new(),
- ByteVecDecoder::new(),
- ))
- }
}
/// getcfheaders message
@@ -349,14 +329,6 @@ impl encoding::Decoder for GetCFHeadersDecoder {
impl encoding::Decode for GetCFHeaders {
type Decoder = GetCFHeadersDecoder;
-
- fn decoder() -> Self::Decoder {
- GetCFHeadersDecoder(Decoder3::new(
- ArrayDecoder::new(),
- BlockHeightDecoder::new(),
- BlockHashDecoder::new(),
- ))
- }
}
/// cfheaders message
@@ -435,15 +407,6 @@ impl encoding::Decoder for CFHeadersDecoder {
impl encoding::Decode for CFHeaders {
type Decoder = CFHeadersDecoder;
-
- fn decoder() -> Self::Decoder {
- CFHeadersDecoder(Decoder4::new(
- ArrayDecoder::new(),
- BlockHashDecoder::new(),
- FilterHeader::decoder(),
- VecDecoder::new(),
- ))
- }
}
/// getcfcheckpt message
@@ -499,10 +462,6 @@ impl encoding::Decoder for GetCFCheckptDecoder {
impl encoding::Decode for GetCFCheckpt {
type Decoder = GetCFCheckptDecoder;
-
- fn decoder() -> Self::Decoder {
- GetCFCheckptDecoder(Decoder2::new(ArrayDecoder::new(), BlockHashDecoder::new()))
- }
}
/// cfcheckpt message
@@ -573,14 +532,6 @@ impl encoding::Decoder for CFCheckptDecoder {
impl encoding::Decode for CFCheckpt {
type Decoder = CFCheckptDecoder;
-
- fn decoder() -> Self::Decoder {
- CFCheckptDecoder(Decoder3::new(
- ArrayDecoder::new(),
- BlockHashDecoder::new(),
- VecDecoder::new(),
- ))
- }
}
/// Error types for client side block filtering messages.
diff --git a/p2p/src/message_network.rs b/p2p/src/message_network.rs
index 507c68b8..f722c33c 100644
--- a/p2p/src/message_network.rs
+++ b/p2p/src/message_network.rs
@@ -139,25 +139,6 @@ impl encoding::Encode for VersionMessage {
impl encoding::Decode for VersionMessage {
type Decoder = VersionMessageDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder {
- VersionMessageDecoder(encoding::Decoder2::new(
- encoding::Decoder3::new(
- crate::ProtocolVersion::decoder(),
- crate::ServiceFlags::decoder(),
- encoding::ArrayDecoder::<8>::new(),
- ),
- encoding::Decoder6::new(
- crate::address::Address::decoder(),
- crate::address::Address::decoder(),
- encoding::ArrayDecoder::<8>::new(),
- UserAgent::decoder(),
- encoding::ArrayDecoder::<4>::new(),
- encoding::ArrayDecoder::<1>::new(),
- ),
- ))
- }
}
impl encoding::Decoder for VersionMessageDecoder {
diff --git a/primitives/src/block.rs b/primitives/src/block.rs
index 294d0691..771716cc 100644
--- a/primitives/src/block.rs
+++ b/primitives/src/block.rs
@@ -376,9 +376,6 @@ crate::decoder_newtype! {
#[cfg(feature = "alloc")]
impl encoding::Decode for Block<Unchecked> {
type Decoder = BlockDecoder;
- fn decoder() -> Self::Decoder {
- BlockDecoder(Decoder2::new(Header::decoder(), VecDecoder::<Transaction>::new()))
- }
}
/// Computes the Merkle root for a list of transactions.
@@ -609,16 +606,6 @@ impl HeaderDecoder {
impl encoding::Decode for Header {
type Decoder = HeaderDecoder;
- fn decoder() -> Self::Decoder {
- HeaderDecoder(Decoder6::new(
- VersionDecoder::new(),
- BlockHashDecoder::new(),
- TxMerkleNodeDecoder::new(),
- BlockTimeDecoder::new(),
- CompactTargetDecoder::new(),
- encoding::ArrayDecoder::new(),
- ))
- }
}
impl From<Header> for BlockHash {
@@ -760,7 +747,6 @@ crate::decoder_newtype! {
impl encoding::Decode for Version {
type Decoder = VersionDecoder;
- fn decoder() -> Self::Decoder { VersionDecoder(encoding::ArrayDecoder::<4>::new()) }
}
/// Error types for Bitcoin blocks.
diff --git a/primitives/src/hash_types/block_hash.rs b/primitives/src/hash_types/block_hash.rs
index 25492329..50a5f3a0 100644
--- a/primitives/src/hash_types/block_hash.rs
+++ b/primitives/src/hash_types/block_hash.rs
@@ -42,8 +42,6 @@ impl encoding::Encode for BlockHash {
impl encoding::Decode for BlockHash {
type Decoder = BlockHashDecoder;
- #[inline]
- fn decoder() -> Self::Decoder { BlockHashDecoder(encoding::ArrayDecoder::<32>::new()) }
}
encoding::encoder_newtype_exact! {
diff --git a/primitives/src/hash_types/transaction_merkle_node.rs b/primitives/src/hash_types/transaction_merkle_node.rs
index a679c5dd..62b43f3a 100644
--- a/primitives/src/hash_types/transaction_merkle_node.rs
+++ b/primitives/src/hash_types/transaction_merkle_node.rs
@@ -62,8 +62,6 @@ impl encoding::Encode for TxMerkleNode {
impl encoding::Decode for TxMerkleNode {
type Decoder = TxMerkleNodeDecoder;
- #[inline]
- fn decoder() -> Self::Decoder { TxMerkleNodeDecoder(encoding::ArrayDecoder::<32>::new()) }
}
encoding::encoder_newtype_exact! {
diff --git a/primitives/src/hash_types/witness_merkle_node.rs b/primitives/src/hash_types/witness_merkle_node.rs
index c36e22a5..b3dc1c23 100644
--- a/primitives/src/hash_types/witness_merkle_node.rs
+++ b/primitives/src/hash_types/witness_merkle_node.rs
@@ -62,8 +62,6 @@ impl encoding::Encode for WitnessMerkleNode {
impl encoding::Decode for WitnessMerkleNode {
type Decoder = WitnessMerkleNodeDecoder;
- #[inline]
- fn decoder() -> Self::Decoder { WitnessMerkleNodeDecoder(encoding::ArrayDecoder::<32>::new()) }
}
encoding::encoder_newtype_exact! {
diff --git a/primitives/src/script/owned.rs b/primitives/src/script/owned.rs
index 759c37c6..16d55022 100644
--- a/primitives/src/script/owned.rs
+++ b/primitives/src/script/owned.rs
@@ -213,7 +213,6 @@ impl<T> encoding::Decoder for ScriptBufDecoder<T> {
impl<T> encoding::Decode for ScriptBuf<T> {
type Decoder = ScriptBufDecoder<T>;
- fn decoder() -> Self::Decoder { ScriptBufDecoder(ByteVecDecoder::new(), PhantomData) }
}
#[cfg(feature = "arbitrary")]
diff --git a/primitives/src/transaction.rs b/primitives/src/transaction.rs
index 1be97d64..54ffd823 100644
--- a/primitives/src/transaction.rs
+++ b/primitives/src/transaction.rs
@@ -654,7 +654,6 @@ impl encoding::Decoder for TransactionDecoder {
#[cfg(feature = "alloc")]
impl encoding::Decode for Transaction {
type Decoder = TransactionDecoder;
- fn decoder() -> Self::Decoder { TransactionDecoder::new() }
}
/// The state of the transiting decoder.
@@ -857,13 +856,6 @@ crate::decoder_newtype! {
#[cfg(feature = "alloc")]
impl encoding::Decode for TxIn {
type Decoder = TxInDecoder;
- fn decoder() -> Self::Decoder {
- TxInDecoder(Decoder3::new(
- OutPointDecoder::new(),
- ScriptSigBufDecoder::new(),
- SequenceDecoder::new(),
- ))
- }
}
/// Bitcoin transaction output.
@@ -930,9 +922,6 @@ crate::decoder_newtype! {
#[cfg(feature = "alloc")]
impl encoding::Decode for TxOut {
type Decoder = TxOutDecoder;
- fn decoder() -> Self::Decoder {
- TxOutDecoder(Decoder2::new(AmountDecoder::new(), ScriptPubKeyBufDecoder::new()))
- }
}
/// A reference to a transaction output.
@@ -1049,7 +1038,6 @@ crate::decoder_newtype! {
impl encoding::Decode for OutPoint {
type Decoder = OutPointDecoder;
- fn decoder() -> Self::Decoder { OutPointDecoder::default() }
}
#[cfg(feature = "serde")]
@@ -1274,7 +1262,6 @@ crate::decoder_newtype! {
impl encoding::Decode for Version {
type Decoder = VersionDecoder;
- fn decoder() -> Self::Decoder { VersionDecoder(encoding::ArrayDecoder::<4>::new()) }
}
/// Error types for Bitcoin transactions.
diff --git a/primitives/src/witness.rs b/primitives/src/witness.rs
index f2c5555c..9c0c23bd 100644
--- a/primitives/src/witness.rs
+++ b/primitives/src/witness.rs
@@ -526,7 +526,6 @@ impl encoding::Decoder for WitnessDecoder {
impl encoding::Decode for Witness {
type Decoder = WitnessDecoder;
- fn decoder() -> Self::Decoder { WitnessDecoder::default() }
}
// Note: we use `Borrow` in the following `PartialEq` impls specifically because of its additional
diff --git a/units/src/amount/unsigned.rs b/units/src/amount/unsigned.rs
index 786706e5..26607827 100644
--- a/units/src/amount/unsigned.rs
+++ b/units/src/amount/unsigned.rs
@@ -628,9 +628,6 @@ impl encoding::Encode for Amount {
#[cfg(feature = "encoding")]
impl encoding::Decode for Amount {
type Decoder = AmountDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder { AmountDecoder(encoding::ArrayDecoder::<8>::new()) }
}
#[cfg(feature = "encoding")]
diff --git a/units/src/block.rs b/units/src/block.rs
index 4f053c2e..cc17f79b 100644
--- a/units/src/block.rs
+++ b/units/src/block.rs
@@ -218,9 +218,6 @@ impl encoding::Encode for BlockHeight {
#[cfg(feature = "encoding")]
impl encoding::Decode for BlockHeight {
type Decoder = BlockHeightDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder { BlockHeightDecoder(encoding::ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "encoding")]
diff --git a/units/src/locktime/absolute/mod.rs b/units/src/locktime/absolute/mod.rs
index cab27ced..4f9da2bd 100644
--- a/units/src/locktime/absolute/mod.rs
+++ b/units/src/locktime/absolute/mod.rs
@@ -411,9 +411,6 @@ impl encoding::Encode for LockTime {
#[cfg(feature = "encoding")]
impl encoding::Decode for LockTime {
type Decoder = LockTimeDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder { LockTimeDecoder(encoding::ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "encoding")]
diff --git a/units/src/pow.rs b/units/src/pow.rs
index 0d4c0b32..994bd007 100644
--- a/units/src/pow.rs
+++ b/units/src/pow.rs
@@ -316,9 +316,6 @@ impl encoding::Encode for CompactTarget {
#[cfg(feature = "encoding")]
impl encoding::Decode for CompactTarget {
type Decoder = CompactTargetDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder { CompactTargetDecoder(encoding::ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "encoding")]
diff --git a/units/src/sequence.rs b/units/src/sequence.rs
index b97dce37..5abaa062 100644
--- a/units/src/sequence.rs
+++ b/units/src/sequence.rs
@@ -272,9 +272,6 @@ impl encoding::Encode for Sequence {
#[cfg(feature = "encoding")]
impl encoding::Decode for Sequence {
type Decoder = SequenceDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder { SequenceDecoder(encoding::ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "encoding")]
diff --git a/units/src/time.rs b/units/src/time.rs
index 6524fd69..672a0705 100644
--- a/units/src/time.rs
+++ b/units/src/time.rs
@@ -131,9 +131,6 @@ impl encoding::Encode for BlockTime {
#[cfg(feature = "encoding")]
impl encoding::Decode for BlockTime {
type Decoder = BlockTimeDecoder;
-
- #[inline]
- fn decoder() -> Self::Decoder { BlockTimeDecoder(encoding::ArrayDecoder::<4>::new()) }
}
#[cfg(feature = "encoding")]
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.