difftreelog
fix only enable sponsoring if rate limit is on
in: master
1 file changed
pallets/contract-helpers/src/lib.rsdiffbeforeafterboth72 Hasher2 = Twox128,72 Hasher2 = Twox128,73 Key2 = T::AccountId,73 Key2 = T::AccountId,74 Value = T::BlockNumber,74 Value = T::BlockNumber,75 QueryKind = OptionQuery,75 QueryKind = ValueQuery,76 >;76 >;7778 impl<T: Config> Pallet<T> {79 pub fn allowed(contract: T::AccountId, user: T::AccountId, default: bool) -> bool {80 if !<AllowlistEnabled<T>>::get(&contract) {81 return default;82 }83 <Allowlist<T>>::get(&contract, &user) || <Owner<T>>::get(contract) == user84 }85 }778678 #[pallet::call]87 #[pallet::call]79 impl<T: Config> Pallet<T> {88 impl<T: Config> Pallet<T> {194 {203 {195 let called_contract: T::AccountId =204 let called_contract: T::AccountId =196 T::Lookup::lookup((*dest).clone()).unwrap_or_default();205 T::Lookup::lookup((*dest).clone()).unwrap_or_default();197 if <AllowlistEnabled<T>>::get(&called_contract)206 if !<Pallet<T>>::allowed(called_contract, who.clone(), true) {198 && !<Allowlist<T>>::get(&called_contract, who)199 && &<Owner<T>>::get(&called_contract) != who200 {201 return Err(transaction_validity::InvalidTransaction::Call.into());207 return Err(transaction_validity::InvalidTransaction::Call.into());202 }208 }255 let called_contract: T::AccountId =261 let called_contract: T::AccountId =256 T::Lookup::lookup((*dest).clone()).unwrap_or_default();262 T::Lookup::lookup((*dest).clone()).unwrap_or_default();257 if <SelfSponsoring<T>>::get(&called_contract) {263 if <SelfSponsoring<T>>::get(&called_contract)264 && <Pallet<T>>::allowed(called_contract.clone(), who.clone(), false)265 {258 let last_tx_block = SponsorBasket::<T>::get(&called_contract, &who);266 let last_tx_block = SponsorBasket::<T>::get(&called_contract, &who);259 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;267 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;