Как записать несколько значений, относящихся к пользователю в цепочке субстратов? - PullRequest
0 голосов
/ 22 февраля 2020

Я хочу хранить ха sh дайджест файлов в цепочке субстратов. Таким образом, для пользователя Алиса существует массив с именем files, который имеет все дайджесты ha sh. И я хочу иметь возможность добавлять в массив.

Мой текущий код просто обновляет значение, но я хочу иметь возможность обновлять, удалять и добавлять значения ha sh.

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(())
        }
    }
}

Официальный учебник не обсуждает сохранение значений. Это действительно обсуждает разговор о перечислении позже, но я не мог понять это.

...