use pendzl::traits::Timestamp;
const TW_INDEX_SIZE: u32 = 60;
#[cfg(build = "release")]
const TW_INDEX_SIZE: u32 = 3600 * 8;
#[derive(Debug, PartialEq, Eq, scale::Encode, scale::Decode)]
#[cfg_attr(
feature = "std",
derive(scale_info::TypeInfo, ink::storage::traits::StorageLayout)
)]
pub struct TwIndex {
pub value: u32,
}
impl TwIndex {
pub fn new() -> Self {
TwIndex { value: 0 }
}
pub fn next(&self) -> Self {
let index = self
.value
.overflowing_add(1)
.0
.checked_rem(TW_INDEX_SIZE)
.unwrap();
TwIndex { value: index }
}
}
#[derive(
Debug, Default, PartialEq, Eq, scale::Encode, scale::Decode, Clone, Copy,
)]
#[cfg_attr(
feature = "std",
derive(scale_info::TypeInfo, ink::storage::traits::StorageLayout)
)]
pub struct TwEntry {
pub timestamp: Timestamp,
pub accumulator: u64,
}