SmartVaultManagerV5::_afterTokenTransfer
call smartVaultIndex.transferTokenId(_from, _to, _tokenId)
, that will make transfer
exceed block gas limit if _from
has too many tokens.
smartVaultIndex.transferTokenId
gas cost grow lineary with each token in _from
. When a token is transferred _afterTokenTransfer
is called.
An attacker can mint ~ 30_000_000 / 5000 = 6000 tokens, transfer to a victim to lock the transfer function. Or a user may create many vaults themself.
Locked transfer
functionality
You can put it in tests
folder, run npx hardhat test test/fileName.js
and check the console output
Manual review
Consider limiting the number of tokens a user can have.
Consider using a different smartVaultIndex
implementation that does not increase gas consumption lineary
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.