difftreelog
Fix contract stponsoring rate limit enforcement
in: master
1 file changed
pallets/nft/src/lib.rsdiffbeforeafterboth368 // Contract Sponsorship and Ownership368 // Contract Sponsorship and Ownership369 pub ContractOwner get(fn contract_owner): map hasher(twox_64_concat) T::AccountId => T::AccountId;369 pub ContractOwner get(fn contract_owner): map hasher(twox_64_concat) T::AccountId => T::AccountId;370 pub ContractSelfSponsoring get(fn contract_self_sponsoring): map hasher(twox_64_concat) T::AccountId => bool;370 pub ContractSelfSponsoring get(fn contract_self_sponsoring): map hasher(twox_64_concat) T::AccountId => bool;371 pub ContractSponsorBasket get(fn contract_sponsor_basket): map hasher(twox_64_concat) T::AccountId => T::BlockNumber;371 pub ContractSponsorBasket get(fn contract_sponsor_basket): map hasher(twox_64_concat) (T::AccountId, T::AccountId) => T::BlockNumber;372 pub ContractSponsoringRateLimit get(fn contract_sponsoring_rate_limit): map hasher(twox_64_concat) T::AccountId => T::BlockNumber;372 pub ContractSponsoringRateLimit get(fn contract_sponsoring_rate_limit): map hasher(twox_64_concat) T::AccountId => T::BlockNumber;373 }373 }374 add_extra_genesis {374 add_extra_genesis {227122712272 let mut sponsor_transfer = false;2272 let mut sponsor_transfer = false;2273 if <ContractSponsoringRateLimit<T>>::contains_key(called_contract.clone()) {2273 if <ContractSponsoringRateLimit<T>>::contains_key(called_contract.clone()) {2274 let last_tx_block = <ContractSponsorBasket<T>>::get(&called_contract);2274 let last_tx_block = <ContractSponsorBasket<T>>::get((&called_contract, &who));2275 let block_number = <system::Module<T>>::block_number() as T::BlockNumber;2275 let block_number = <system::Module<T>>::block_number() as T::BlockNumber;2276 let rate_limit = <ContractSponsoringRateLimit<T>>::get(&called_contract);2276 let rate_limit = <ContractSponsoringRateLimit<T>>::get(&called_contract);2277 let limit_time = last_tx_block + rate_limit;2277 let limit_time = last_tx_block + rate_limit;227822782279 if block_number >= limit_time {2279 if block_number >= limit_time {2280 <ContractSponsorBasket<T>>::insert(called_contract.clone(), block_number);2280 <ContractSponsorBasket<T>>::insert((called_contract.clone(), who.clone()), block_number);2281 sponsor_transfer = true;2281 sponsor_transfer = true;2282 }2282 }2283 } else {2283 } else {