After updating my Substrate blockchain project to target polkadot-v1.9, I updated the parity-scale-codec dependency from version 3.6.5 to 3.6.9. This update introduced a compilation error related to a missing full_encode method which wasn't previously required or mentioned.
Error Details
The compiler emits the following error during the build process:
error[E0046]: not all trait items implemented, missing: `full_encode`
--> /Users/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/parity-scale-codec-3.6.9/src/codec.rs:345:1
|
343 | fn full_encode(&self, _into: &mut Vec<u8>);
| ------------------------------------------- `full_encode` from trait
344 | }
345 | impl<S: Encode + EncodeLike> FullEncode for S {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `full_encode` in implementation
For more information about this error, try `rustc --explain E0046`.
This error suggests that a full_encode method is now expected but not implemented. This method was not part of the required API in parity-scale-codec 3.6.5 and does not appear to be documented in the current version.
Steps to Reproduce
Update a Substrate blockchain project to target polkadot-v1.9.0.
Update parity-scale-codec dependency from version 3.6.5 to 3.6.9 in Cargo.toml.
Run cargo build or cargo check to compile the project.
Observe the compilation error related to the missing full_encode method.
Expected Behavior
I expected the project to compile without errors related to parity-scale-codec, as it did with version 3.6.5.
Questions
Has there been a change or addition to the parity-scale-codec API in version 3.6.9 that introduces a full_encode method requirement?
Is there documentation or migration guidance available for updating to 3.6.9 that covers this new requirement?
Could this be an issue related to Substrate's polkadot-v1.9.0 update influencing parity-scale-codec dependency behavior?
After updating my Substrate blockchain project to target
polkadot-v1.9
, I updated theparity-scale-codec
dependency from version3.6.5
to3.6.9
. This update introduced a compilation error related to a missingfull_encode
method which wasn't previously required or mentioned.Error Details
The compiler emits the following error during the build process:
This error suggests that a
full_encode
method is now expected but not implemented. This method was not part of the required API inparity-scale-codec 3.6.5
and does not appear to be documented in the current version.Steps to Reproduce
polkadot-v1.9.0
.3.6.5
to3.6.9
inCargo.toml
.cargo build
orcargo check
to compile the project.full_encode
method.Expected Behavior
I expected the project to compile without errors related to
parity-scale-codec
, as it did with version3.6.5
.Questions
parity-scale-codec
API in version3.6.9
that introduces afull_encode
method requirement?3.6.9
that covers this new requirement?polkadot-v1.9.0
update influencingparity-scale-codec
dependency behavior?Additional Context
Rust toolchain version:
nightly-2024-01-22
Substrate version targeted:polkadot-v1.9.0
Dependency change: parity-scale-codec 3.6.5 -> 3.6.9Any guidance or insights into resolving this compilation error would be greatly appreciated.