0

以下 Substrate 存储定义as Indices中的含义是什么?

decl_storage! {
    trait Store for Module<T: Trait> as Indices { ... }
}

我已阅读文档中的Advanced Traits部分,但关键字的语法trait不考虑任何标记为as.

4

1 回答 1

1

这条线trait Store for Module<T: Trait> as NAME是宏观魔术。所写的那一行不是有效的 Rust,但它通过decl_storage!宏转换为有效的 Rust 代码。

最终,as Indices让 SubstrateIndices在 Substrate 元数据中为此存储项生成一个用户友好的别名 ( )。

例如,您可以将存储命名为:

decl_storage! {
    trait Store for Module<T: Trait> as KittyStorage {
        Value: map T::AccountId => u64;
    }
}

它会像这样出现在 Polkadot UI 中:

在此处输入图像描述

您在此处选择的名称与您希望存储名称在外部世界中的显示方式无关。

于 2019-05-19T19:18:34.083 回答