如何结合 AccounId 和时间戳为 Substrate 中的 Storage 映射创建一个新键
How to combine AccounId and the time stamp to create a new key for Storage map in Substrate
我正在尝试通过组合帐户 ID 和时间戳
创建一个新的密钥来将数据存储到 StorageMap
我不确定如何获取帐户的字符串表示并连接时间戳
let origin_account = ensure_signed(origin);
let time = <pallet_timestamp::Module<T>>::get();
听起来您想使用以下两种方式之一:
- 使用元组将两条信息表示为单个键:
/// Any signal messages waiting to be sent.
#[pallet::storage]
pub(super) type MyMap<T: Config> = StorageMap<
_,
Blake2_128Concat,
(T::AccountId, T::Moment), // <--- key will be a tuple of the two data
ValueType,
>;
和
let origin_account = ensure_signed(origin)?;
let time = <pallet_timestamp::Module<T>>::get();
let value = 99;
MyMap::<T>::insert((origin_account, time), value);
- 或者您想使用双映射,它明确支持两个键。
#[pallet::storage]
pub(super) type MyDoubleMap<T: Config> = StorageDoubleMap<
_,
Blake2_128Concat,
T::AccountId, // <-- key 1
Blake2_128Concat,
T::Moment, // <-- key 2
ValueType,
>;
和
let origin_account = ensure_signed(origin)?;
let time = <pallet_timestamp::Module<T>>::get();
let value = 99;
MyDoubleMap::<T>::insert(origin_account, time, value);
我正在尝试通过组合帐户 ID 和时间戳
创建一个新的密钥来将数据存储到StorageMap
我不确定如何获取帐户的字符串表示并连接时间戳
let origin_account = ensure_signed(origin);
let time = <pallet_timestamp::Module<T>>::get();
听起来您想使用以下两种方式之一:
- 使用元组将两条信息表示为单个键:
/// Any signal messages waiting to be sent.
#[pallet::storage]
pub(super) type MyMap<T: Config> = StorageMap<
_,
Blake2_128Concat,
(T::AccountId, T::Moment), // <--- key will be a tuple of the two data
ValueType,
>;
和
let origin_account = ensure_signed(origin)?;
let time = <pallet_timestamp::Module<T>>::get();
let value = 99;
MyMap::<T>::insert((origin_account, time), value);
- 或者您想使用双映射,它明确支持两个键。
#[pallet::storage]
pub(super) type MyDoubleMap<T: Config> = StorageDoubleMap<
_,
Blake2_128Concat,
T::AccountId, // <-- key 1
Blake2_128Concat,
T::Moment, // <-- key 2
ValueType,
>;
和
let origin_account = ensure_signed(origin)?;
let time = <pallet_timestamp::Module<T>>::get();
let value = 99;
MyDoubleMap::<T>::insert(origin_account, time, value);