Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
Heya Gitcoiners & Gitcoinerettes! They say that July is the warmest month of the year (location depending), and we’re definitely getting ready fo…
Howdy, Gitcoiners! This month we’re running hackathons, we launched Grants Round 6 (which we just tweaked big time btw), we’re building, we’re improv…
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
If a public function is never called, it should be marked as external, so that it can be optimized by solc
- Severity: Informational
Hints:Use [slithIR](https://github.com/trailofbits/slither/tree/56079226efc78a83438c55b91ce8dabbb0b7813c) and check:
- the function is never the destination of an [InternalCall](https://github.com/trailofbits/slither/blob/56079226efc78a83438c55b91ce8dabbb0b7813c/slither/slithir/operations/internal_call.py)
- there is no [InternalDynamicCall](https://github.com/trailofbits/slither/blob/56079226efc78a83438c55b91ce8dabbb0b7813c/slither/slithir/operations/internal_dynamic_call.py) (or ensure that the function is never the destination of an `InternalDynamicCall`)
- Iterate only over the derived contracts ([slither.contracts_derived](https://github.com/trailofbits/slither/blob/56079226efc78a83438c55b91ce8dabbb0b7813c/slither/core/slither_core.py#L31)) to be sure that no inherited contract calls the function