The MartenitsaToken contract inherits the ERC721 standard to manage the ownership of NFTs. By using the ERC721::transferFrom function, a user can transfer an NFT to another user. However, in this way, the user's martenitsa count is not updated correctly in the contract, leading to inconsistencies in the contract state.
As a result of transfering NFTs using the transferFrom function, the user's martenitsa count is not updated correctly, leading to inconsistencies in the contract state.
Manual Review
Add this test to MartenitsaToken.t.sol:
From the logs of this test we can see that Bob can transfer his NFT to Jack. The ownership of the NFT is correct, but the MartenitsaToken::getCountMartenitsaTokensOwner mapping is not updated correctly.
Consider overriding the transferFrom function in the MartenitsaToken contract:
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.