--- 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 {