Rigor Protocol contest - bobirichman's results

Community lending and instant payments for new home construction.

General Information

Platform: Code4rena

Start Date: 01/08/2022

Pot Size: $50,000 USDC

Total HM: 26

Participants: 133

Period: 5 days

Judge: Jack the Pug

Total Solo HM: 6

Id: 151

League: ETH

Rigor Protocol

Findings Distribution

Researcher Performance

Rank: 76/133

Findings: 2

Award: $62.36

🌟 Selected for report: 0

🚀 Solo Findings: 0

QA REPORT

[LOW] Use mult before div

To improve the following calculations precision consider changing the order of the operations such that multiplications come before divisions. Example: Project.sol#L905

[LOW] The project is compiled with different solidity versions

[LOW] Missing nonReentrancy modifier

The following functions allows attackers to try reentrancy since they are calling to external contracts / transferring eth. Consider adding a nonReentrancy modifier.

Proof of concept:

[LOW] Add timelock for the following functions

Using a timelock in the following type of functions is common among defi protocols.

Proof of concept:

[LOW] Not verified input

At the following functions you should verify the parameters that are being assigned to a state variable.

Proof of concept:

[LOW] In the following functions consider verifying the fee parameter

Where the fee parameter validation is checking greater than 0% (which may happen by mistake) and less than 100%

Proof of concept:

[NON CRITICAL] Missing function spec comments

Proof of concept:

[NON CRITICAL] NonReentrancy should be the first modifier in order

Example: Disputes.sol#L145

[NON CRITICAL] Consider emitting an event at the following functions

Proof of concept:

[NON CRITICAL] Unused function parameters should have name removed

If for any reason the following unused parameters are necessary then remove their naming (since only the type matters for function signature) Example: Community.sol#L291

Table Of Content

GAS REPORT

[GAS] Cache array size

You can cache the array size to improve gas usage in the following locations Example: Project.sol#L602

[GAS] Do not cache msg.sender since loading msg.sender is more efficient than a local variable

Proof of concept:

[GAS] Use > instead != to compare uint with 0

Proof of concept:

[GAS] In the following revert statements consider using custom error instead a message

Proof of concept:

[GAS] Use assembly opcodes iszero in the following locations

Proof of concept:

[GAS] Mark as payable If has onlyOwner modifier

In order to save gas you can put a payable modifier for functions that are called by protocol owners.

Proof of concept:

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