difftreelog
feat SelfSponsoring migration
in: master
1 file changed
pallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth33pub mod pallet {33pub mod pallet {34 pub use super::*;34 pub use super::*;35 use crate::eth::ContractHelpersEvents;35 use crate::eth::ContractHelpersEvents;36 use frame_support::pallet_prelude::*;36 use frame_support::{pallet_prelude::*, sp_runtime::DispatchResult};37 use pallet_evm_coder_substrate::DispatchResult;37 use frame_system::{pallet_prelude::OriginFor, ensure_root};38 use sp_core::{H160, U256};38 use sp_core::{H160, U256};39 use sp_std::vec::Vec;39 use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};40 use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};40 use up_data_structs::SponsorshipState;41 use up_data_structs::SponsorshipState;41 use evm_coder::ToLog;42 use evm_coder::ToLog;199 ),200 ),200 }201 }202203 #[pallet::call]204 impl<T: Config> Pallet<T> {205 /// Migrate contract to use `SponsoringMode` storage instead of `SelfSponsoring`206 #[pallet::call_index(0)]207 #[pallet::weight(<T as frame_system::Config>::DbWeight::get().reads_writes(208 addresses.len() as u64, addresses.len() as u64 * 2209 ))]210 pub fn migrate_from_self_sponsoring(211 origin: OriginFor<T>,212 addresses: Vec<H160>,213 ) -> DispatchResult {214 ensure_root(origin)?;215 for address in addresses {216 if <SelfSponsoring<T>>::get(address) {217 <SponsoringMode<T>>::set(address, Some(SponsoringModeT::Allowlisted));218 <SelfSponsoring<T>>::remove(address);219 }220 }221 Ok(())222 }223 }201224202 impl<T: Config> Pallet<T> {225 impl<T: Config> Pallet<T> {203 /// Get contract owner.226 /// Get contract owner.