From 6f036ae3d11d618a87b7dbd5865c026d8144e377 Mon Sep 17 00:00:00 2001 From: Greg Zaitsev Date: Fri, 11 Dec 2020 14:04:48 +0000 Subject: [PATCH] Fix contract stponsoring rate limit enforcement --- --- a/pallets/nft/src/lib.rs +++ b/pallets/nft/src/lib.rs @@ -368,7 +368,7 @@ // Contract Sponsorship and Ownership pub ContractOwner get(fn contract_owner): map hasher(twox_64_concat) T::AccountId => T::AccountId; pub ContractSelfSponsoring get(fn contract_self_sponsoring): map hasher(twox_64_concat) T::AccountId => bool; - pub ContractSponsorBasket get(fn contract_sponsor_basket): map hasher(twox_64_concat) T::AccountId => T::BlockNumber; + pub ContractSponsorBasket get(fn contract_sponsor_basket): map hasher(twox_64_concat) (T::AccountId, T::AccountId) => T::BlockNumber; pub ContractSponsoringRateLimit get(fn contract_sponsoring_rate_limit): map hasher(twox_64_concat) T::AccountId => T::BlockNumber; } add_extra_genesis { @@ -2271,13 +2271,13 @@ let mut sponsor_transfer = false; if >::contains_key(called_contract.clone()) { - let last_tx_block = >::get(&called_contract); + let last_tx_block = >::get((&called_contract, &who)); let block_number = >::block_number() as T::BlockNumber; let rate_limit = >::get(&called_contract); let limit_time = last_tx_block + rate_limit; if block_number >= limit_time { - >::insert(called_contract.clone(), block_number); + >::insert((called_contract.clone(), who.clone()), block_number); sponsor_transfer = true; } } else { -- gitstuff