PartyDAO contest - Ch_301's results

A protocol for buying, using, and selling NFTs as a group.

General Information

Platform: Code4rena

Start Date: 12/09/2022

Pot Size: $75,000 USDC

Total HM: 19

Participants: 110

Period: 7 days

Judge: HardlyDifficult

Total Solo HM: 9

Id: 160

League: ETH

PartyDAO

Findings Distribution

Researcher Performance

Rank: 15/110

Findings: 1

Award: $483.57

🌟 Selected for report: 0

🚀 Solo Findings: 0

This check will never be true.

it is called only by _adjustVotingPower() and it makes done checks for address()

Finding

File: main/contracts/party/PartyGovernance.sol if (newDelegate == address(0) || oldDelegate == address(0)) {

https://github.com/PartyDAO/party-contracts-c4/blob/main/contracts/party/PartyGovernance.sol#L931

https://github.com/PartyDAO/party-contracts-c4/blob/main/contracts/crowdfund/Crowdfund.sol#L464

Check then update

it better to update the state after the check is CrowdfundLifecycle.Active or not

Finding

File: /main/contracts/crowdfund/Crowdfund.sol totalContributions += amount;

https://github.com/PartyDAO/party-contracts-c4/blob/main/contracts/crowdfund/Crowdfund.sol#L411

Invoke finalize() directly

Is it better to invoke finalize() here? there is no need to wait for intel someone to invoke it directly

Finding

File: /main/contracts/crowdfund/AuctionCrowdfund.sol if (market.isFinalized(auctionId_)) { revert AuctionFinalizedError(auctionId_); } // Only bid if we are not already the highest bidder. if (market.getCurrentHighestBidder(auctionId_) == address(this)) { revert AlreadyHighestBidderError(); } // Get the minimum necessary bid to be the highest bidder. uint96 bidAmount = market.getMinimumBid(auctionId_).safeCastUint256ToUint96(); // Make sure the bid is less than the maximum bid. if (bidAmount > maximumBid) { revert ExceedsMaximumBidError(bidAmount, maximumBid); }

https://github.com/PartyDAO/party-contracts-c4/blob/main/contracts/crowdfund/AuctionCrowdfund.sol#L162-L164 https://github.com/PartyDAO/party-contracts-c4/blob/main/contracts/crowdfund/AuctionCrowdfund.sol#L172-L174

A void creat failed AuctionCrowdfund

after this check you need to check if the current bid is curntBid > maximumBid if there is no bidder yet you need to check The minimum price for the first bid, starting the auction reservePrice > maximumBid

Finding

File: /main/contracts/crowdfund/AuctionCrowdfund.sol if (!market.auctionIdMatchesToken( opts.auctionId, address(opts.nftContract), opts.nftTokenId)) { revert InvalidAuctionIdError(); }

https://github.com/PartyDAO/party-contracts-c4/blob/main/contracts/crowdfund/AuctionCrowdfund.sol#L134-L140

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter