type Event: From<Event<Self>> + Into<Self::Event>
type Balance: Parameter + Member + AtLeast32Bit + Default + Copy + MaybeSerializeDeserialize
type Amount: Signed + TryInto<Self::Balance> + TryFrom<Self::Balance> + Parameter + Member + SimpleArithmetic + Default + Copy + MaybeSerializeDeserialize
type CurrencyId: Parameter + Member + Copy + MaybeSerializeDeserialize + Ord
type ExistentialDeposit: Get<Self::Balance>
type DustRemoval: OnDustRemoval<Self::CurrencyId, Self::Balance>