liberland/liberland_substrate

LLM doesn't deposit its events

Closed this issue · 1 comments

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.

PR ready.