Invalid detection of potentially used before declaration
- Dominant language
- Python
- Stars
- 6.4k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
```
$ slither --version
0.8.0
```
Please consider [the following code](https://github.com/threshold-network/solidity-contracts/blob/913c04debc1b5a733ea402bf5dacd5e85da0db8a/contracts/governance/Checkpoints.sol#L120-L133):
```
if (src != address(0)) {
(uint256 oldWeight, uint256 newWeight) = writeCheckpoint(...);
emit DelegateVotesChanged(src, oldWeight, newWeight);
}
if (dst != address(0)) {
(uint256 oldWeight, uint256 newWeight) = writeCheckpoint(...);
emit DelegateVotesChanged(dst, oldWeight, newWeight);
}
```
```
function writeCheckpoint(...) internal returns (uint256 oldWeight, uint256 newWeight) {
// ...
}
```
Slither says:
> Variable 'Checkpoints.moveVotingPower(address,address,uint256).newWeight (contracts/governance/Checkpoints.sol#120)' in Checkpoints.moveVotingPower(address,address,uint256) (contracts/governance/Checkpoints.sol#113-137) potentially used before declaration: (oldWeight,newWeight) = writeCheckpoint(_checkpoints[dst],add,amount) (contracts/governance/Checkpoints.sol#129-133)
Variable 'Checkpoints.moveVotingPower(address,address,uint256).oldWeight (contracts/governance/Checkpoints.sol#120)' in Checkpoints.moveVotingPower(address,address,uint256) (contracts/governance/Checkpoints.sol#113-137) potentially used before declaration: (oldWeight,newWeight) = writeCheckpoint(_checkpoints[dst],add,amount) (contracts/governance/Checkpoints.sol#129-133)
Contributor guide
Assessment
This issue has not been assessed yet.