Platform: Code4rena
Start Date: 10/02/2022
Pot Size: $30,000 USDC
Total HM: 5
Participants: 24
Period: 3 days
Judge: harleythedog
Total Solo HM: 3
Id: 86
League: ETH
Rank: 16/24
Findings: 1
Award: $153.03
🌟 Selected for report: 0
🚀 Solo Findings: 0
153.0348 USDC - $153.03
Gas fee improvement https://github.com/code-423n4/2022-02-nested/blob/main/contracts/NestedFactory.sol#L100 there is no need to use extra variable operatorsCache to check if operator exists.
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/NestedFactory.sol#L111 In the removeOperator function, no need for this line uint256 operatorsLength = operators.length; Use operators.length directly in the loop
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/NestedFactory.sol#L177 getAssetTokensLength() function is not called from the contract. If not needed it can removed or should be made external
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/NestedFactory.sol#L191 Function tokenHoldings() is not called from within the contract. If not needed it can be removed or should be made external
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/NestedAsset.sol#L52 Function originalOwner() is not called from within the contract. If not needed it can be removed or should be made external
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/OperatorResolver.sol#L16 Add empty string check for this function
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/OperatorResolver.sol#L57 If bith names.length and operatorsToImport.length == 0, this check passes. Consider adding empty check to both structures
https://github.com/code-423n4/2022-02-nested/blob/main/contracts/FeeSplitter.sol#L204 Nested _addShare _sendFees calls _addShare But in sendFeesWithRoyalties(), _addShare is called again after _sendFees. This can lead to nested executed. Please consider refactoring this code.
#0 - maximebrugel
2022-02-15T18:22:19Z
Cheaper to read in local variable.
Cheaper to read in local variable.
This is view, not needed.
Yes, but not an issue in this case.
I feel it's better that way.
#1 - harleythedogC4
2022-03-01T02:09:54Z
My personal judgements:
#2 - harleythedogC4
2022-03-03T01:53:58Z
Adding in the reduced severity #23: 9. "updateShareHolder logic does not seem correct". Just code consistency. Valid and non-critical.
#3 - harleythedogC4
2022-03-03T02:24:46Z
Now, here is the methodology I used for calculating a score for each QA report. I first assigned each submission to be either non-critical (1 point), very-low-critical (5 points) or low-critical (10 points), depending on how severe/useful the issue is. The score of a QA report is the sum of these points, divided by the maximum number of points achieved by a QA report. This maximum number was 26 points, achieved by https://github.com/code-423n4/2022-02-nested-findings/issues/66.
The number of points achieved by this report is 9 points. Thus the final score of this QA report is (9/26)*100 = 35.