Open code423n4 opened 2 years ago
This is incorrect per how the "delegation" works, via fallback
meaning, existing function in the Delegator work normally
Valid Low and potentially higher -> TODO: Bump
Disagree as pair creation in an AMM is crucial and permissionless creation is an acceptable design decision
NC as it's self DOS
Hardcoded is cheaper
NC
Nice find, potentially higher sev - Low for now
Your effort shows and I think you did a good job, I'd recommend providing objective feedback over personal story-telling "I had issues with he codebase".
Perhaps: "The codebase could use more thorough commenting" would work better
2L 2NC
newblockchain QA report
Summary
unigov
inlending-market
, for example). It was hard to test.Low
GovernorBravoDelegator cannot be used with GovernorBravoDelegate
GovernorBravoDelegator
should be used withGovernorBravoDelegate
as implementation. However, due to lack of corresponding functions, some exposed functions will not work._acceptInitialAdmin
does not exist inGovernorBravoDelegate
_initiate()
does not exist inGovernorBravoDelegate
but only_initiate(address governorAlpha)
. The number of arguments does not match.Upon
queue
executed true in GovernorBravoDelegateexecuted
is set to be true. This is checked in thestate
function and when true, it will returnProposalState.Executed
. Which means any proposal which was queued can actually never be executed. However, due to lack of existing tests and time constraints, is not confirmed.createPair
lack of access control in BaseV1-corecreatePair
is used to deploy a contract for a token pairs. And any one can create such a pair, also decide to givestable
flag true or false. It is unclear whether it was intended usage or not, nor it is tested and confirmed.Non-Critical
Window should be enforced to be greater than 0 in
BaseV1-core
sample
function, the argumentwindow
should be checked to be greater than 0, otherwise, it might revert from division by zero.COMP token address for WETH hardcoded in
Comptroller
Misleading comments in
Proposal-Store.sol
ProposalStore
does not describe the contract.symbol is optional for ERC20 in
BaseV1-core
MKR
returns base32 for the symbol which will revert when used for the standard ERC20 interface. It is safer to use either wrapper or try catch.