Add deposit/withdraw events to EVM module (#5440)

* Add deposit/withdraw events

* Remove balances trait
This commit is contained in:
Drew Stone
2020-03-31 12:16:41 -06:00
committed by GitHub
parent 2008d3601a
commit 9789054fb8
2 changed files with 13 additions and 5 deletions
+1 -1
View File
@@ -172,7 +172,7 @@ impl<'vicinity, T: Trait> ApplyBackend for Backend<'vicinity, T> {
}
for log in logs {
Module::<T>::deposit_event(Event::Log(Log {
Module::<T>::deposit_event(Event::<T>::Log(Log {
address: log.address,
topics: log.topics,
data: log.data,
+12 -4
View File
@@ -127,7 +127,7 @@ pub trait Trait: frame_system::Trait + pallet_timestamp::Trait {
/// Currency type for deposit and withdraw.
type Currency: Currency<Self::AccountId>;
/// The overarching event type.
type Event: From<Event> + Into<<Self as frame_system::Trait>::Event>;
type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
/// Precompiles associated with this EVM engine.
type Precompiles: Precompiles;
@@ -147,11 +147,17 @@ decl_storage! {
decl_event! {
/// EVM events
pub enum Event {
pub enum Event<T> where
<T as frame_system::Trait>::AccountId,
{
/// Ethereum events from contracts.
Log(Log),
/// A contract has been created at given address.
Created(H160),
/// A deposit has been made at a given address.
BalanceDeposit(AccountId, H160, U256),
/// A withdrawal has been made from a given address.
BalanceWithdraw(AccountId, H160, U256),
}
}
@@ -202,6 +208,7 @@ decl_module! {
Accounts::mutate(&address, |account| {
account.balance += bvalue;
});
Module::<T>::deposit_event(Event::<T>::BalanceDeposit(sender, address, bvalue));
}
/// Withdraw balance from EVM into currency/balances module.
@@ -225,6 +232,7 @@ decl_module! {
Accounts::insert(&address, account);
T::Currency::resolve_creating(&sender, imbalance);
Module::<T>::deposit_event(Event::<T>::BalanceWithdraw(sender, address, bvalue));
}
/// Issue an EVM call operation. This is similar to a message call transaction in Ethereum.
@@ -289,7 +297,7 @@ decl_module! {
},
)?;
Module::<T>::deposit_event(Event::Created(create_address));
Module::<T>::deposit_event(Event::<T>::Created(create_address));
Ok(())
}
@@ -327,7 +335,7 @@ decl_module! {
},
)?;
Module::<T>::deposit_event(Event::Created(create_address));
Module::<T>::deposit_event(Event::<T>::Created(create_address));
Ok(())
}
}