【问题标题】:Substrate tutorials - trait `MaxEncodedLen` is not implemented for `Vec<u8>`Substrate 教程 - 没有为 `Vec<u8>` 实现特征 `MaxEncodedLen`
【发布时间】:2021-12-02 20:43:19
【问题描述】:

目前,在完成基板教程时,我已经到了"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

是否有一些明显的事情可能出错了? 我该如何开始调试/修复此问题?

【问题讨论】:

标签: rust substrate


【解决方案1】:

现在,只需要删除 #[pallet::generate_storage_info] 宏行。

未来的用户不应出现此错误。 见https://github.com/substrate-developer-hub/substrate-docs/issues/627

【讨论】:

    猜你喜欢
    • 2019-09-12
    • 2020-10-28
    • 1970-01-01
    • 2020-03-02
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多