NFTs are only tracked per collection address and not per tokenId. Dividing an NFT of a same collection where another NFT is already dividing will cause TokenDivider::nftToErc20Info
to erase previously dividing NFT data to only keep the latest. Previous NFT will remain unclaimable and it won't be possible to create sell orders for the associated ERC20 tokens
TokenDivider::nftToErc20Info
is set when an NFT is divided
But the mapping tracks only the nftAddress so a previously divided NFT could be overwritten if another NFT of the same nftAddress gets divided
The mapping is used in TokenDivider::claimNft
, TokenDivider::transferErcTokens
and TokenDivider::sellErc20
causing these functions to not work with the erased information for previously divided NFTs.
NFT will be stucked for ever in the TokenDivider
contract with erased nftToErc20Info
sellOrders will not be possible with erased nftToErc20Info
similar to s_userToSellOrders, an array of ERC20Info could be used
a double mapping adding data per tokenId
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.