Conversation
Slither reportStatic Analysis Report**THIS CHECKLIST IS NOT COMPLETE**. Use `--show-ignored-findings` to show all the results. Summary - [locked-ether](#locked-ether) (1 results) (Medium) - [reentrancy-no-eth](#reentrancy-no-eth) (2 results) (Medium) - [unused-return](#unused-return) (9 results) (Medium) - [incorrect-modifier](#incorrect-modifier) (1 results) (Low) - [calls-loop](#calls-loop) (2 results) (Low) - [reentrancy-benign](#reentrancy-benign) (3 results) (Low) - [reentrancy-events](#reentrancy-events) (4 results) (Low) - [dead-code](#dead-code) (44 results) (Informational) - [solc-version](#solc-version) (3 results) (Informational) - [incorrect-using-for](#incorrect-using-for) (1 results) (Informational) - [missing-inheritance](#missing-inheritance) (2 results) (Informational) - [naming-convention](#naming-convention) (13 results) (Informational) - [unimplemented-functions](#unimplemented-functions) (4 results) (Informational) ## locked-ether Impact: Medium Confidence: High - [ ] ID-0 Contract locking ether found: Contract [MutablePauseTarget](https://github.com/equilibria-xyz/root/blob/1f7579ef2566a86f4e87a1bfcbc43186466730eb/src/mutability/Mutable.sol#L132-L137) has payable functions: - [MutablePauseTarget.fallback()](https://github.com/equilibria-xyz/root/blob/1f7579ef2566a86f4e87a1bfcbc43186466730eb/src/mutability/Mutable.sol#L133-L135) But does not have a function to withdraw the etherreentrancy-no-ethImpact: Medium
root/src/mutability/Mutable.sol Lines 94 to 107 in 1f7579e
root/src/mutability/Mutable.sol Lines 117 to 121 in 1f7579e unused-returnImpact: Medium
root/src/token/types/Token6.sol Lines 43 to 45 in 1f7579e
root/src/distribution/Airdrop.sol Lines 46 to 51 in 1f7579e
root/src/token/types/Token.sol Lines 51 to 53 in 1f7579e
root/src/token/types/Token18.sol Lines 53 to 55 in 1f7579e
root/src/token/types/Token6.sol Lines 54 to 56 in 1f7579e
root/src/distribution/Airdrop.sol Lines 28 to 34 in 1f7579e
root/src/mutability/Mutator.sol Lines 34 to 43 in 1f7579e
root/src/token/types/Token.sol Lines 40 to 42 in 1f7579e
root/src/token/types/Token18.sol Lines 43 to 45 in 1f7579e incorrect-modifierImpact: Low
root/src/attribute/Attribute.sol Lines 28 to 32 in 1f7579e calls-loopImpact: Low
root/src/mutability/Mutator.sol Lines 54 to 57 in 1f7579e
root/src/mutability/Mutator.sol Lines 59 to 62 in 1f7579e reentrancy-benignImpact: Low
root/src/mutability/Mutator.sol Lines 59 to 62 in 1f7579e
root/src/mutability/Mutator.sol Lines 54 to 57 in 1f7579e
root/src/mutability/Mutator.sol Lines 34 to 43 in 1f7579e reentrancy-eventsImpact: Low
root/src/mutability/Mutable.sol Lines 117 to 121 in 1f7579e
root/src/mutability/Mutator.sol Lines 54 to 57 in 1f7579e
root/src/mutability/Mutator.sol Lines 59 to 62 in 1f7579e
root/src/mutability/Mutable.sol Lines 110 to 114 in 1f7579e dead-codeImpact: Informational
root/src/number/types/UFixed18.sol Lines 288 to 290 in 1f7579e
root/src/number/types/Fixed6.sol Lines 295 to 297 in 1f7579e
root/src/number/types/UFixed6.sol Lines 295 to 297 in 1f7579e
root/src/number/types/Fixed6.sol Lines 287 to 289 in 1f7579e
root/src/mutability/Implementation.sol Lines 54 to 56 in 1f7579e
root/src/number/types/Fixed18.sol Lines 288 to 290 in 1f7579e
root/src/number/types/Fixed6.sol Lines 311 to 313 in 1f7579e
root/src/number/types/Fixed6.sol Lines 327 to 329 in 1f7579e
root/src/number/types/UFixed6.sol Lines 311 to 314 in 1f7579e
root/src/number/types/Fixed6.sol Lines 335 to 337 in 1f7579e
root/src/number/types/Fixed18.sol Lines 304 to 306 in 1f7579e
root/src/number/types/Fixed6.sol Lines 343 to 346 in 1f7579e
root/src/number/types/UFixed18.sol Lines 313 to 316 in 1f7579e
root/src/number/types/UFixed18.sol Lines 280 to 282 in 1f7579e
root/src/number/types/UFixed6.sol Lines 329 to 331 in 1f7579e
root/src/number/types/Fixed18.sol Lines 280 to 282 in 1f7579e
root/src/number/types/Fixed6.sol Lines 303 to 305 in 1f7579e
root/src/number/types/Fixed6.sol Lines 361 to 363 in 1f7579e
root/src/number/types/UFixed6.sol Lines 279 to 281 in 1f7579e
root/src/number/types/Fixed6.sol Lines 369 to 371 in 1f7579e
root/src/number/types/UFixed18.sol Lines 330 to 332 in 1f7579e
root/src/number/types/UFixed18.sol Lines 272 to 274 in 1f7579e
root/src/number/types/Fixed6.sol Lines 352 to 355 in 1f7579e
root/src/number/types/Fixed6.sol Lines 319 to 321 in 1f7579e
root/src/number/types/UFixed18.sol Lines 296 to 298 in 1f7579e
root/src/mutability/Implementation.sol Lines 59 to 61 in 1f7579e
root/src/number/types/Fixed18.sol Lines 312 to 314 in 1f7579e
root/src/number/types/UFixed6.sol Lines 320 to 323 in 1f7579e
root/src/number/types/Fixed18.sol Lines 345 to 348 in 1f7579e
root/src/number/types/Fixed18.sol Lines 336 to 339 in 1f7579e
root/src/number/types/Fixed18.sol Lines 362 to 364 in 1f7579e
root/src/number/types/Fixed18.sol Lines 320 to 322 in 1f7579e
root/src/number/types/UFixed18.sol Lines 264 to 266 in 1f7579e
root/src/number/types/UFixed6.sol Lines 303 to 305 in 1f7579e
root/src/number/types/UFixed18.sol Lines 304 to 307 in 1f7579e
root/src/number/types/UFixed18.sol Lines 322 to 324 in 1f7579e
root/src/number/types/UFixed6.sol Lines 271 to 273 in 1f7579e
root/src/number/types/UFixed6.sol Lines 263 to 265 in 1f7579e
root/src/number/types/Fixed18.sol Lines 296 to 298 in 1f7579e
root/src/number/types/Fixed18.sol Lines 354 to 356 in 1f7579e
root/src/number/types/UFixed6.sol Lines 337 to 339 in 1f7579e
root/src/number/types/UFixed6.sol Lines 287 to 289 in 1f7579e
root/src/number/types/UFixed18.sol Lines 256 to 258 in 1f7579e
root/src/number/types/Fixed18.sol Lines 328 to 330 in 1f7579e solc-versionImpact: Informational
root/src/number/types/Fixed18.sol Line 2 in 1f7579e
root/src/vrgda/VRGDADecayMath.sol Line 2 in 1f7579e
root/src/attribute/Attribute.sol Line 2 in 1f7579e incorrect-using-forImpact: Informational
root/src/mutability/types/Version.sol Lines 16 to 20 in 1f7579e missing-inheritanceImpact: Informational
root/src/utils/OwnableStub.sol Lines 9 to 15 in 1f7579e
naming-conventionImpact: Informational
root/src/attribute/Pausable.sol Lines 34 to 36 in 1f7579e
root/src/mutability/Mutable.sol Lines 34 to 38 in 1f7579e
root/src/mutability/Mutable.sol Line 31 in 1f7579e
root/src/attribute/Ownable.sol Line 21 in 1f7579e
root/src/attribute/Ownable.sol Lines 42 to 44 in 1f7579e
root/src/mutability/Implementation.sol Line 19 in 1f7579e
root/src/attribute/Ownable.sol Lines 24 to 28 in 1f7579e
root/src/mutability/Implementation.sol Lines 22 to 26 in 1f7579e
root/src/attribute/Pausable.sol Line 23 in 1f7579e
root/src/attribute/Pausable.sol Lines 26 to 30 in 1f7579e
root/src/mutability/Implementation.sol Line 64 in 1f7579e
root/src/attribute/Attribute.sol Lines 20 to 24 in 1f7579e
root/src/attribute/Attribute.sol Line 17 in 1f7579e unimplemented-functionsImpact: Informational
root/src/attribute/OwnerExecutable.sol Lines 10 to 19 in 1f7579e
root/src/attribute/OwnerWithdrawable.sol Lines 9 to 16 in 1f7579e
root/src/attribute/OwnerDelegatable.sol Lines 10 to 18 in 1f7579e
root/src/mutability/Implementation.sol Lines 11 to 65 in 1f7579e |
EdNoepel
left a comment
There was a problem hiding this comment.
Looks good; just needs some doco.
|
LTGM Let's not actually merge this in though — (1) We shouldn't be tying anything Perennial-specific to root and (2) I'm thinking we shouldn't be opinionated about how the end user ends up deploying this. Let's maybe just stick this in a gist we can keep track of in case we want to look back on it, but this should be good to use to deploy in the meantime. |
| Airdrop airdrop = new Airdrop(); | ||
|
|
||
| // set pending owner to protocol multisig | ||
| airdrop.updatePendingOwner(PROTOCOL_MULTISIG_ADDRESS); |
There was a problem hiding this comment.
This address should be loaded as an environment variable using vm.envAddress, and should be referred to as OWNER_ADDRESS.
move OwnableStub
Unit Test Coverage ReportCoverage after merging prateek/pe-2671-deploy-airdrop into v3 will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issue: https://linear.app/perennial/issue/PE-2671/deploy-airdrop-contract