Substrate 教程 - 特征 MaxEncodedLen 未针对 `Vec<u8>` 实现
Substrate tutorials - trait `MaxEncodedLen` is not implemented for `Vec<u8>`
目前,在学习基础教程时,我已经到了 "Build the runtime with your new pallet" 部分。根据教程更新并仔细检查文件。
我在预构建检查中遇到以下错误(之前的教程构建正常,Ubuntu 20.04.3):
cargo check -p node-template-runtime
给出:
cargo check -p node-template-runtime
Updating git repository `https://github.com/paritytech/substrate.git`
Checking sp-std v4.0.0-dev (https://github.com/paritytech/substrate.git?tag=monthly-2021-11-1#352c46a6)
Compiling node-template-runtime v4.0.0-dev (/myPath/substrate/att2/substrate-node-template/runtime)
Checking pallet-template v4.0.0-dev (/myPath/substrate/att2/substrate-node-template/pallets/template)
error[E0277]: the trait bound `Vec<u8>: MaxEncodedLen` is not satisfied
--> pallets/template/src/lib.rs:40:11
|
40 | #[pallet::generate_storage_info]
| ^^^^^^^^^^^^^^^^^^^^^ the trait `MaxEncodedLen` is not implemented for `Vec<u8>`
|
= note: required because of the requirements on the impl of `StorageInfoTrait` for `frame_support::pallet_prelude::StorageMap<_GeneratedPrefixForStorageProofs<T>, frame_support::Blake2_128Concat, Vec<u8>, (<T as frame_system::Config>::AccountId, <T as frame_system::Config>::BlockNumber), frame_support::pallet_prelude::ValueQuery>`
note: required by `storage_info`
--> /myPath/.cargo/git/checkouts/substrate-7e08433d4c370a21/352c46a/frame/support/src/traits/storage.rs:71:2
|
71 | fn storage_info() -> Vec<StorageInfo>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For more information about this error, try `rustc --explain E0277`.
error: could not compile `pallet-template` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed
我的 Cargo.toml
中有以下内容:
[dependencies.sp-std]
default-features = false
git = 'https://github.com/paritytech/substrate.git'
tag = 'monthly-2021-11-1' # or the latest monthly
version = '4.0.0-dev' # or the latest version
有没有明显的错误? 我该如何开始 debug/fix 这个?
现在,只需删除 #[pallet::generate_storage_info]
宏行。
以后的用户应该不会出现这个错误。 参见 https://github.com/substrate-developer-hub/substrate-docs/issues/627