Beginner FriendlyFoundryGameFi
100 EXP
View results
Submission Details
Severity: medium
Valid

users cannot join events multiple times because _paticipiants is not updated

Summary

Users are supposed to join events several times.

Vulnerability Details

stopEvent function modifies isProducer variable. It doesnt update _participiants variable.

Impact

joinevent() function modifies _participiants variable to true. But since stopEvent doesnt update it to false the user will not be able to join another event

function testJoinEventAfterEventStoppedStarted() public activeEvent eligibleForReward {
vm.startPrank(bob);
marketplace.collectReward();
healthToken.approve(address(martenitsaEvent), 10 ** 18);
martenitsaEvent.joinEvent();
vm.stopPrank();
vm.warp(1 days + 1);
martenitsaEvent.stopEvent();
martenitsaEvent.startEvent(1 days);
vm.startPrank(chasy);
martenitsaEvent.createMartenitsa("bracelet");
martenitsaEvent.createMartenitsa("bracelet");
martenitsaEvent.createMartenitsa("bracelet");
marketplace.listMartenitsaForSale(3, 1 wei);
marketplace.listMartenitsaForSale(4, 1 wei);
marketplace.listMartenitsaForSale(5, 1 wei);
martenitsaEvent.approve(address(marketplace), 3);
martenitsaEvent.approve(address(marketplace), 4);
martenitsaEvent.approve(address(marketplace), 5);
marketplace.makePresent(bob, 3);
marketplace.makePresent(bob, 4);
marketplace.makePresent(bob, 5);
vm.stopPrank();
vm.startPrank(bob);
marketplace.collectReward();
healthToken.approve(address(martenitsaEvent), 10 ** 18);
martenitsaEvent.joinEvent();
vm.stopPrank();
/* vm.expectRevert();
martenitsaEvent.joinEvent();
vm.stopPrank(); */
}

Tools Used

foundry

Recommendations

It's recommended to add _participiant modifier in stopEvent() function.

Updates

Lead Judging Commences

bube Lead Judge over 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

_participants is not updated

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.