BriVault

First Flight #52
Beginner FriendlySolidity
100 EXP
View results
Submission Details
Impact: low
Likelihood: high
Invalid

Public Function Not Used Internally

Root + Impact

Description

If a function is marked public but is not used internally, consider marking it as externalto save gas

- Found in src/briTechToken.sol [Line: 10]()
```solidity
function mint() public onlyOwner {
```
- Found in src/briVault.sol [Line: 106]()
```solidity
function setCountry(string[48] memory countries) public onlyOwner {
```
- Found in src/briVault.sol [Line: 116]()
```solidity
function setWinner(uint256 countryIndex) public onlyOwner returns (string memory) {
```
- Found in src/briVault.sol [Line: 172]()
```solidity
function getWinner () public view returns (string memory) {
```
- Found in src/briVault.sol [Line: 242]()
```solidity
function joinEvent(uint256 countryId) public {
```
- Found in src/briVault.sol [Line: 275]()
```solidity
function cancelParticipation () public {
```

Risk

Likelihood: HIGH

  • Functions declared public and will always include unnecessary ABI generation.

Impact: LOW

  • This does not affect functionality or security, but it results in minor gas inefficiency and unnecessary bytecode size.

Proof of Concept

In Solidity, public functions generate both internal and external call mechanisms, while external functions only support external calls. If a function is never used internally, declaring it external reduces gas and bytecode size.

Recommended Mitigation

Change the visibility from public to external.

- function setCountry(string[48] memory countries) public onlyOwner {
+ function setCountry(string[48] calldata countries) external onlyOwner {
allCountries = countries;
emit CountriesSet();
}
Updates

Appeal created

bube Lead Judge 20 days ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Gas optimizations

Gas optimizations are invalid according to the CodeHawks documentation.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!