--- a/pallets/evm-contract-helpers/src/eth.rs +++ b/pallets/evm-contract-helpers/src/eth.rs @@ -124,8 +124,12 @@ self.recorder().consume_sload()?; self.recorder().consume_sstore()?; - Pallet::::force_set_sponsor(&T::CrossAccountId::from_eth(caller), contract_address) - .map_err(dispatch_to_evm::)?; + Pallet::::force_set_sponsor( + &T::CrossAccountId::from_eth(caller), + contract_address, + &T::CrossAccountId::from_eth(contract_address), + ) + .map_err(dispatch_to_evm::)?; Ok(()) } --- a/pallets/evm-contract-helpers/src/lib.rs +++ b/pallets/evm-contract-helpers/src/lib.rs @@ -219,7 +219,11 @@ /// Set sponsor as already confirmed. /// /// `sender` must be owner of contract. - pub fn force_set_sponsor(sender: &T::CrossAccountId, contract: H160) -> DispatchResult { + pub fn force_set_sponsor( + sender: &T::CrossAccountId, + contract: H160, + sponsor: &T::CrossAccountId, + ) -> DispatchResult { Pallet::::ensure_owner(contract, *sender.as_eth())?; Sponsoring::::insert( contract, @@ -227,6 +231,34 @@ contract, )), ); + + let eth_sponsor = *sponsor.as_eth(); + let sub_sponsor = sponsor.as_sub().clone(); + + >::deposit_event(Event::::ContractSponsorSet( + contract, + sub_sponsor.clone(), + )); + >::deposit_log( + ContractHelpersEvents::ContractSponsorSet { + contract, + sponsor: eth_sponsor, + } + .to_log(contract), + ); + + >::deposit_event(Event::::ContractSponsorshipConfirmed( + contract, + sub_sponsor, + )); + >::deposit_log( + ContractHelpersEvents::ContractSponsorshipConfirmed { + contract, + sponsor: eth_sponsor, + } + .to_log(contract), + ); + Ok(()) }