LLM doesn't deposit its events
Closed this issue · 1 comments
kacperzuk-neti commented
Proper way to deposit event in substrate is adding generate_deposit
macro to Event enum and calling generated deposit function with event instance. Here's example from https://docs.substrate.io/build/events-and-errors/.
// 1. Use the `generate_deposit` attribute when declaring the Events enum.
#[pallet::event]
#[pallet::generate_deposit(pub(super) fn deposit_event)] // <------ here ----
#[pallet::metadata(...)]
pub enum Event<T: Config> {
// --snip--
}
// 2. Use `deposit_event` inside the dispatchable function
#[pallet::call]
impl<T: Config> Pallet<T> {
#[pallet::weight(1_000)]
pub(super) fn set_value(
origin: OriginFor<T>,
value: u64,
) -> DispatchResultWithPostInfo {
let sender = ensure_signed(origin)?;
// --snip--
Self::deposit_event(RawEvent::ValueSet(value, sender));
}
}
LLM misses the generate_deposit
macro and in places that should deposit event it only creates event instances, for example, here's how it tries to deposit transfer event:
Event::<T>::TransferedLLM(sender, receiver, amount);
This of course doesn't work.
kacperzuk-neti commented
PR ready.