Transfers are not allowed in the protocol. Only MartenitsaMarketplace
can provide MartenitsaTokens
, and only this contract and the MartenitsaVoting
can provide HealthTokens. However, all transfer functions are available due to inheritance. Without overriding them, any user can transfer their tokens and break the protocol:
MartenitsaToken::updateCountMartenitsaTokensOwner
are not called in any transfer function.
Have HealthToken without winning them.
A listed token can be sent to anyone and being sell without the consent of the new owner. Money goes to the first owner.
Likelyhood: High
Anyone, Anytime
Impact: High
countMartenitsaTokensOwner
won't be updated, breaking the reward mechanism.
MartenitsaToken
can be transfered and sell without the consent of the new owner.
HealthToken
can be owned by anyone without winning them.
Override all transfer function to revert in both tokens, except:
HealthToken::transferFrom
which has to work only if the MartenitsaEvent
is the msg.sender
MartenitsaToken::safeTransferFrom
which has to work only if the MartenitsaMarketplace
is the msg.sender
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.