git.delta.rocks / unique-network / refs/commits / ea3a682dbe54

difftreelog

fix only enable sponsoring if rate limit is on

Yaroslav Bolyukin2021-07-28parent: #8a7066a.patch.diff
in: master

1 file changed

modifiedpallets/contract-helpers/src/lib.rsdiffbeforeafterboth
72 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 >;
77
78 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) == user
84 }
85 }
7786
78 #[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) != who
200 {
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;