use crate as pallet_mmr;
use crate::*;
use crate::{
frame_system::DefaultConfig,
primitives::{Compact, LeafDataProvider},
};
use codec::{Decode, Encode};
use frame::{
deps::frame_support::derive_impl,
prelude::{frame_system, frame_system::config_preludes::TestDefaultConfig},
testing_prelude::*,
};
type Block = MockBlock<Test>;
construct_runtime!(
pub enum Test
{
System: frame_system,
MMR: pallet_mmr,
}
);
#[derive_impl(TestDefaultConfig)]
impl frame_system::Config for Test {
type Block = Block;
}
impl Config for Test {
const INDEXING_PREFIX: &'static [u8] = b"mmr-";
type Hashing = Keccak256;
type LeafData = Compact<Keccak256, (ParentNumberAndHash<Test>, LeafData)>;
type OnNewRoot = ();
type BlockHashProvider = DefaultBlockHashProvider<Test>;
type WeightInfo = ();
#[cfg(feature = "runtime-benchmarks")]
type BenchmarkHelper = ();
}
#[derive(Encode, Decode, Clone, Default, Eq, PartialEq, Debug)]
pub struct LeafData {
pub a: u64,
pub b: Vec<u8>,
}
impl LeafData {
pub fn new(a: u64) -> Self {
Self { a, b: Default::default() }
}
}
parameter_types! {
pub static LeafDataTestValue: LeafData = Default::default();
}
impl LeafDataProvider for LeafData {
type LeafData = Self;
fn leaf_data() -> Self::LeafData {
LeafDataTestValue::get().clone()
}
}