-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QA Report #25
Labels
bug
Something isn't working
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
Comments
code423n4
added
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
bug
Something isn't working
labels
Feb 28, 2022
Thanks for the feedback!
|
Unadjusted score: 55 (inclidung 30 points for the extensive architecture recommendations). |
Extra 5 points from #24 |
Extra 5 points from #22. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
bug
Something isn't working
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
QA Report
Overall I would recommend rethinking the architecture here. Some of the abstract contracts are leaky abstractions and have many cross dependencies.
Just an idea, have one contract that serves as a vault for the NFTs and manages all information about escrow for buy price / auction. That way there isn't so much state that you have to manage between all the different contracts and there's one contract that manages whether a given NFT is in escrow.
Low
Use safeTransferFrom / safeTransfer for ERC721
It's best practice to use this functions so NFTs don't get transferred to contracts that aren't aware of the protocol. Make sure you account for reentrancy though.
Large unchecked blocks
All the large unchecked blocks can potentially cause unexpected overflow issues in arithmetic. Make sure very unchecked block targets a very specific block of code (as opposed to large for loop blocks).
Non-critical
Incorrect comments in role mixins
These should be
revokeRole
, notgrantRole
https://github.com/code-423n4/2022-02-foundation/blob/4d8c8931baffae31c7506872bf1100e1598f2754/contracts/mixins/roles/AdminRole.sol#L35
https://github.com/code-423n4/2022-02-foundation/blob/4d8c8931baffae31c7506872bf1100e1598f2754/contracts/mixins/roles/OperatorRole.sol#L26
The text was updated successfully, but these errors were encountered: