difftreelog
fix Change hashier for `Sponsoring` storage
in: master
2 files changed
pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth295 for HelpersContractSponsoring<T>295 for HelpersContractSponsoring<T>296{296{297 fn get_sponsor(who: &T::CrossAccountId, call: &(H160, Vec<u8>)) -> Option<T::CrossAccountId> {297 fn get_sponsor(who: &T::CrossAccountId, call: &(H160, Vec<u8>)) -> Option<T::CrossAccountId> {298 let (contract, _) = call;298 let (contract_address, _) = call;299 let mode = <Pallet<T>>::sponsoring_mode(*contract);299 let mode = <Pallet<T>>::sponsoring_mode(*contract_address);300 if mode == SponsoringModeT::Disabled {300 if mode == SponsoringModeT::Disabled {301 return None;301 return None;302 }302 }303303304 let sponsor = match <Pallet<T>>::get_sponsor(*contract) {304 let sponsor = match <Pallet<T>>::get_sponsor(*contract_address) {305 Some(sponsor) => sponsor,305 Some(sponsor) => sponsor,306 None => return None,306 None => return None,307 };307 };308308309 if mode == SponsoringModeT::Allowlisted && !<Pallet<T>>::allowed(*contract, *who.as_eth()) {309 if mode == SponsoringModeT::Allowlisted && !<Pallet<T>>::allowed(*contract_address, *who.as_eth()) {310 return None;310 return None;311 }311 }312 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;312 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;313313314 if let Some(last_tx_block) = <SponsorBasket<T>>::get(contract, who.as_eth()) {314 if let Some(last_tx_block) = <SponsorBasket<T>>::get(contract_address, who.as_eth()) {315 let limit = <SponsoringRateLimit<T>>::get(contract);315 let limit = <SponsoringRateLimit<T>>::get(contract_address);316316317 let timeout = last_tx_block + limit;317 let timeout = last_tx_block + limit;318 if block_number < timeout {318 if block_number < timeout {319 return None;319 return None;320 }320 }321 }321 }322322323 <SponsorBasket<T>>::insert(contract, who.as_eth(), block_number);323 <SponsorBasket<T>>::insert(contract_address, who.as_eth(), block_number);324324325 Some(sponsor)325 Some(sponsor)326 }326 }pallets/evm-contract-helpers/src/lib.rsdiffbeforeafterboth29 use pallet_evm_coder_substrate::DispatchResult;29 use pallet_evm_coder_substrate::DispatchResult;30 use sp_core::H160;30 use sp_core::H160;31 use pallet_evm::account::CrossAccountId;31 use pallet_evm::account::CrossAccountId;32 use frame_system::pallet_prelude::BlockNumberFor;33 use up_data_structs::SponsorshipState;32 use up_data_structs::SponsorshipState;343335 #[pallet::config]34 #[pallet::config]66 pub(super) type SelfSponsoring<T: Config> =65 pub(super) type SelfSponsoring<T: Config> =67 StorageMap<Hasher = Twox128, Key = H160, Value = bool, QueryKind = ValueQuery>;66 StorageMap<Hasher = Twox128, Key = H160, Value = bool, QueryKind = ValueQuery>;686768 /// Store for contract sponsorship state.69 /// 70 /// * **Key** - contract address.71 /// * **Value** - sponsorship state.69 #[pallet::storage]72 #[pallet::storage]70 pub(super) type Sponsoring<T: Config> = StorageMap<73 pub(super) type Sponsoring<T: Config> = StorageMap<71 Hasher = Twox128,74 Hasher = Twox64Concat,72 Key = H160,75 Key = H160,73 Value = SponsorshipState<T::CrossAccountId>,76 Value = SponsorshipState<T::CrossAccountId>,74 QueryKind = ValueQuery,77 QueryKind = ValueQuery,