pallet_nft_fractionalization/
types.rs1use super::*;
21use codec::{Decode, Encode, MaxEncodedLen};
22use fungible::Inspect as FunInspect;
23use fungibles::Inspect;
24use scale_info::TypeInfo;
25
26pub type AssetIdOf<T> = <<T as Config>::Assets as Inspect<<T as SystemConfig>::AccountId>>::AssetId;
27pub type AssetBalanceOf<T> =
28 <<T as Config>::Assets as Inspect<<T as SystemConfig>::AccountId>>::Balance;
29pub type DepositOf<T> =
30 <<T as Config>::Currency as FunInspect<<T as SystemConfig>::AccountId>>::Balance;
31pub type AccountIdLookupOf<T> = <<T as SystemConfig>::Lookup as StaticLookup>::Source;
32
33#[derive(Decode, Encode, Default, PartialEq, Eq, MaxEncodedLen, TypeInfo)]
35pub struct Details<AssetId, Fractions, Deposit, AccountId> {
36 pub asset: AssetId,
38
39 pub fractions: Fractions,
41
42 pub deposit: Deposit,
44
45 pub asset_creator: AccountId,
47}
48
49#[cfg(feature = "runtime-benchmarks")]
51pub trait BenchmarkHelper<AssetId, CollectionId, ItemId> {
52 fn asset(id: u32) -> AssetId;
54 fn collection(id: u32) -> CollectionId;
56 fn nft(id: u32) -> ItemId;
58}
59
60#[cfg(feature = "runtime-benchmarks")]
61impl<AssetId, CollectionId, ItemId> BenchmarkHelper<AssetId, CollectionId, ItemId> for ()
62where
63 AssetId: From<u32>,
64 CollectionId: From<u32>,
65 ItemId: From<u32>,
66{
67 fn asset(id: u32) -> AssetId {
68 id.into()
69 }
70 fn collection(id: u32) -> CollectionId {
71 id.into()
72 }
73 fn nft(id: u32) -> ItemId {
74 id.into()
75 }
76}