Как записать несколько значений, относящихся к пользователю, в цепочке субстратов?
Я хочу сохранить хеш-дайджест файлов в цепочке подложек. Итак, для пользователя Алисы существует массив с именемfiles
в котором есть все хеш-дайджесты. И я хочу иметь возможность добавлять в массив.
Мой текущий код просто обновляет значение, но я хочу иметь возможность обновлять, удалять и добавлять хеш-значения.
use support::{decl_storage, decl_module, StorageMap, dispatch::Result};
use system::ensure_signed;
use runtime_primitives::traits::{As, Hash};
use parity_codec::{Encode, Decode};
#[derive(Encode, Decode, Default, Clone, PartialEq)]
#[cfg_attr(feature = "std", derive(Debug))]
pub struct Kitty<Hash, Balance> {
id: Hash,
dna: Hash,
price: Balance,
gen: u64,
}
pub trait Trait: balances::Trait {}
decl_storage! {
trait Store for Module<T: Trait> as KittyStorage {
OwnedKitty get(kitty_of_owner): map T::AccountId => Kitty<T::Hash, T::Balance>;
}
}
decl_module! {
pub struct Module<T: Trait> for enum Call where origin: T::Origin {
fn create_kitty(origin) -> Result {
let sender = ensure_signed(origin)?;
let new_kitty = Kitty {
id: <T as system::Trait>::Hashing::hash_of(&0),
dna: <T as system::Trait>::Hashing::hash_of(&0),
price: <T::Balance as As<u64>>::sa(0),
gen: 0,
};
<OwnedKitty<T>>::insert(&sender, new_kitty);
Ok(())
}
}
}
В официальном руководстве не обсуждается сохранение значений. Позже речь идет о перечислении, но я не мог этого понять.