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.rsdiffbeforeafterboth--- a/pallets/evm-contract-helpers/src/lib.rs
+++ b/pallets/evm-contract-helpers/src/lib.rs
@@ -29,7 +29,6 @@
use pallet_evm_coder_substrate::DispatchResult;
use sp_core::H160;
use pallet_evm::account::CrossAccountId;
- use frame_system::pallet_prelude::BlockNumberFor;
use up_data_structs::SponsorshipState;
#[pallet::config]
@@ -66,9 +65,13 @@
pub(super) type SelfSponsoring<T: Config> =
StorageMap<Hasher = Twox128, Key = H160, Value = bool, QueryKind = ValueQuery>;
+ /// Store for contract sponsorship state.
+ ///
+ /// * **Key** - contract address.
+ /// * **Value** - sponsorship state.
#[pallet::storage]
pub(super) type Sponsoring<T: Config> = StorageMap<
- Hasher = Twox128,
+ Hasher = Twox64Concat,
Key = H160,
Value = SponsorshipState<T::CrossAccountId>,
QueryKind = ValueQuery,