git.delta.rocks / unique-network / refs/commits / 6f036ae3d11d

difftreelog

Fix contract stponsoring rate limit enforcement

Greg Zaitsev2020-12-11parent: #33c31e8.patch.diff
in: master

1 file changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
368 // Contract Sponsorship and Ownership368 // Contract Sponsorship and Ownership
369 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 {
22712271
2272 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;
22782278
2279 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 {