Due to lack of guard rails when changing platformFee, it can cause the contract to end up in an unintentioal state.
In the following example, we start with maxAssetCount
equal to 5. Then after we list 2 items, we set the maxAssetCount
to be equal to 1. Now this allows us to add 1 more listing while storing a total of 2 listed assets
Proof Of Concept:
Loss of listings means loss of funds (royalty fee paid by the sellers) when the owner decides to change the maxAssetCount market parameter
Manual Analysis
Checks should be performed in Swan::setMarketParameters(params)
function to ensure smooth transition. This can involve time bound operations as well. So in other words, make a proposal to change market parameters. Let the sellers and buyers decide how / when / if they want to participate. They will have time to make that choice then let there be an approve market proposal function which approve the proposal if the conditions for smooth transition are satisfied.
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.