请帮我。
#[cfg(test)]
mod mock;
#[cfg(test)]
mod tests;
#[derive(Clone, Eq, PartialEq, Default, Encode, Decode, Hash)]
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))]
pub struct TestData<BlockNumber,Bytes> {
pub name: Bytes,
pub address: Bytes,
}
pub type TestDataOf<T> = TestData<primitives::Bytes>;
--snip--
// This pallet's storage items.
decl_storage! {
// It is important to update your storage name so that your pallet's
// storage items are isolated from other pallets.
// ---------------------------------vvvvvvvvvvvvvv
trait Store for Module<T: Trait> as TemplateModule {
pub TestDatas: map hasher(blake2_128_concat) T::AccountId => Option<TestDataOf<T>>;
}
}
--snip--
decl_module! {
/// The module declaration.
pub struct Module<T: Trait> for enum Call where origin: T::Origin {
// Initializing errors
// this includes information about your errors in the node's metadata.
// it is needed only if you are using errors in your pallet
type Error = Error<T>;
// Initializing events
// this is needed only if you are using events in your pallet
fn deposit_event() = default;
/// regist public data
#[weight = 10_000]
pub fn register_test_data(origin, name:Bytes, address:Bytes) -> dispatch::DispatchResult {
let registerer = ensure_signed(origin)?;
let test_data = TestDataOf::<T> {
name,
address,
};
<TestDatas<T>>::insert(®isterer, test_data);
Ok(())
}
}
}
--snip--
Run Code Online (Sandbox Code Playgroud)
错误是...
the trait `_::_parity_scale_codec::Encode` is not implemented for `TestData<substrate_primitives::Bytes>`
the trait `_::_parity_scale_codec::Decode` is not implemented for `TestData<substrate_primitives::Bytes>`
the trait `_::_parity_scale_codec::WrapperTypeEncode` is not implemented for `substrate_primitives::Bytes`
Run Code Online (Sandbox Code Playgroud)
您应该使用 aVec<u8>在运行时存储中像字符串一样存储任意字节。
Vec<u8>在 Polkadot JS 中访问作为字符串的 a 时,您应该使用 type Text,它会自动处理解析并将此类型转换为常规 UTF-8 文本。
例子:
锈:
pub struct TestData {
pub name: Vec<u8>,
pub address: Vec<u8>,
}
Run Code Online (Sandbox Code Playgroud)
Polkadot JS 类型定义:
TestData: {
name: 'Text',
address: 'Text'
}
Run Code Online (Sandbox Code Playgroud)
如果这有帮助,或者您有其他问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |