git.delta.rocks / unique-network / refs/commits / 260c4c9b454a

difftreelog

feat SelfSponsoring migration

Yaroslav Bolyukin2023-02-15parent: #98c55c3.patch.diff
in: master

1 file changed

modifiedpallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth
33pub 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 }
202
203 #[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 * 2
209 ))]
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 }
201224
202 impl<T: Config> Pallet<T> {225 impl<T: Config> Pallet<T> {
203 /// Get contract owner.226 /// Get contract owner.